local ImHelper = {}
function ImHelper.getImageSize(currentSize, maxSize, scaleUp)
local newSize = { currentSize[1], currentSize[2] };
local ratioX = maxSize[1] / currentSize[1];
local ratioY = maxSize[2] / currentSize[2];
local ratio = math.min(ratioX, ratioY);
if (ratio < 1.0 or scaleUp) then
newSize[1] = math.floor(currentSize[1] * ratio) or 0;
newSize[2] = math.floor(currentSize[2] * ratio) or 0;
end
return newSize;
end
function ImHelper.getMinImageSizeToFit(currentSize, targetSize)
--assert(type(currentSize) == 'table', 'Arg 1: Not a table')
--assert(#currentSize == 2, 'Arg 1: Invalid size')
local newSize = currentSize;
local ratioX = targetSize[1] / currentSize[1];
local ratioY = targetSize[2] / currentSize[2];
local ratio = math.max(ratioX, ratioY);
newSize[1] = math.floor(currentSize[1] * ratio) or 0;
newSize[2] = math.floor(currentSize[2] * ratio) or 0;
return newSize;
end
print( unpack(ImHelper.getImageSize({ 800, 600 }, {200, 200})) )
print( unpack(ImHelper.getMinImageSizeToFit({ 800, 600 }, {200, 250})) )
23700cookie-checkLua image sizing