模庉:Imagesize
交面
固体𢪏材料𧗱模庉尼在模庉:Imagesize/材料。
--[[
Imagesize
taks a single unnamed parameter, the filename
returns 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, h
end
function 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" .. h
end
function p.getHeight(frame)
local filename = mw.text.trim(frame.args[1] or "")
if filename == "" then return end
local w, h = _getdimensions(filename)
return h
end
function p.getWidth(frame)
local filename = mw.text.trim(frame.args[1] or "")
if filename == "" then return end
local w, h = _getdimensions(filename)
return w
end
function 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 / h
end
return p