Mô đun:Imagesize
Giao diện
This module is adapted from the 'getdimensions' function in Module:Multiple image for use as a stand-alone.
It has four public functions: getWidth, getHeight, getDimensions, getScale. They take a filename, with or without the "File:" prefix, and return the width, the height, both dimensions (WIDTHxHEIGHT), or the ratio of width to height (multiplied by a scale factor) respectively. It works with files on Commons or local ones, and works with animated gifs using the dimensions of the first image.
The getScale function takes an additional parameter, |scale= (default is 1). This can be used to directly scale images to the same height using the |upright= parameter in image syntax.
Examples
{{#invoke:Imagesize|getDimensions|Example.jpg}}→ 172x178{{#invoke:Imagesize|getWidth|Example.jpg}}→ 172{{#invoke:Imagesize|getHeight|Example.jpg}}→ 178{{#invoke:Imagesize|getScale|Example.jpg|scale=1}}→ 0.96629213483146{{#invoke:Imagesize|getDimensions|File:Bishzilla Lucia Looking Right.gif}}→ 100x103{{#invoke:Imagesize|getDimensions|File:Doorway from Moutiers-Saint-Jean MET DP255158.jpg}}→ 3042x3887{{#invoke:Imagesize|getScale|File:Doorway from Moutiers-Saint-Jean MET DP255158.jpg|scale=1}}→ 0.78260869565217
| Same height, scale=1 | |
|---|---|
![]() | |
| Same height, scale=0.5 | |
--[[Imagesizetaks a single unnamed parameter, the filenamereturns its dimensions as a string "WIDTHxHEIGHT"Adaped from the original function in Module:Multiple image--]]local p = {}local function _getdimensions(filename) if filename:sub(1,5) ~= "File:" then filename = "File:" .. filename end local titleobj = mw.title.new(mw.uri.decode(mw.ustring.gsub(filename,'%|.*$',''), 'WIKI')) local fileobj = titleobj and titleobj.file or {width = 0, height = 0} local w = tonumber(fileobj.width) or 0 local h = tonumber(fileobj.height) or 0 return w, hendfunction p.getDimensions(frame) local filename = mw.text.trim(frame.args[1] or "") if filename == "" then return end local w, h = _getdimensions(filename) return w .. "x" .. hendfunction p.getHeight(frame) local filename = mw.text.trim(frame.args[1] or "") if filename == "" then return end local w, h = _getdimensions(filename) return hendfunction p.getWidth(frame) local filename = mw.text.trim(frame.args[1] or "") if filename == "" then return end local w, h = _getdimensions(filename) return wendfunction p.getScale(frame) local filename = mw.text.trim(frame.args[1] or "") if filename == "" then return end local scale = tonumber(frame.args.scale) or 1 local w, h = _getdimensions(filename) if (w == 0) or (h == 0) then return end return scale * w / hendreturn p


