Bước tới nội dung

Mô đun:Imagesize

Bách khoa toàn thư mở Wikipedia

Đây là phiên bản hiện hành của trang này do Hakutora (thảo luận | đóng góp) sửa đổi vào lúc 19:21, ngày 28 tháng 12 năm 2021 (Trang mới: “--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…”). Địa chỉ URL hiện tại là một liên kết vĩnh viễn đến phiên bản này của trang.

(khác) ← Phiên bản cũ | Phiên bản mới nhất (khác) | Phiên bản mới → (khác)
Tài liệu mô đun[xem] [sửa] [lịch sử] [làm mới]

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[sửa mã nguồn]

  • {{#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

--[[
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