如何使用 Lua 将 png 转换成灰度图?

我知道C#上如何将 PNG 图像转换成灰度图而又不丢失透明度,但如何在 Lua 或 Cpp 上做到呢?

点赞
用户13619683
用户13619683

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 通道的图像,还需要进行其他检查。

2020-08-06 05:45:18