Modul:ImageUtils

De la Wikipedia, enciclopedia liberă

Documentația acestui modul poate fi creată la Modul:ImageUtils/doc

local util = {}

local arguments = require('Modul:Arguments')

local function makeInvokeFunc(funcName)
	return function (frame)
		local args = arguments.getArgs(frame, { frameOnly = true })
		return util[funcName](args)
	end
end

--[[
imageOrientation

This function returns orientation of given image.

Usage:
	{{#invoke:ImageUtils|imageOrientation|f=file_name}}

Parameters
	f: File name of the image (without 'File:' namespace)
	
Returns
	'square', 'landscape' or 'portrait'
]]
function util._imageOrientation(args)
	local f = mw.title.new(args['f'], "File").file
	
	if not f.exists then
		error("File not found")
	end
	
	if f.width == f.height then
		return "square"
	end
	
	if f.width > f.height then
		return "landscape"
	end
	
	if f.width < f.height then
		return "portrait"
	end
end
util.imageOrientation = makeInvokeFunc("_imageOrientation")

function util._isLandscape(args)
	return util._imageOrientation(args) == "landscape"
end
util.isLandscape = makeInvokeFunc("_isLandscape")

function util._isPortrait(args)
	return util._imageOrientation(args) == "portrait"
end
util.isPortrait = makeInvokeFunc("_isPortrait")

function util._isSquare(args)
	return util._imageOrientation(args) == "square"
end
util.isSquare = makeInvokeFunc("_isSquare")

function util._isUpright(args)
	return util._isPortrait(args)
end
util.isUpright = makeInvokeFunc("_isUpright")

return util