如何使用Lua将png转换为灰度



我知道如何在C#上将PNG图像转换为灰度并且不丢失透明度,如何在Lua或cpp上做到这一点?

PNG是一种压缩格式,因此如果没有某种库,就无法加载它。BMP更容易加载到内存中,例如:https://bitbucket.org/itraykov/utils/src/master/io/bmp.lua

现在,对于您最初的问题,如何将颜色转换为黑白,最简单的方法是使用RGB平均值:

local r, g, b = getColor()
local bw = (r + g + b)/3
setColor(bw, bw, bw)

当然,您需要根据所使用的库更改getColor/setColor。对于具有透明度或alpha通道的图像,需要进行额外的检查。

最新更新