PNG 文件似乎包含透明像素的背景颜色信息。当以错误的设置将该图像用作纹理时,这种情况有时会变得明显。
如何在 Linux(最好是命令行)中找出 PNG 文件中透明像素的颜色?
答案1
背景颜色通过 PNG“bKGD”块传达。
在命令行中,您可以使用“pngcheck -v”。从以下网址下载并安装 pngcheck
http://www.libpng.org/pub/png/apps/pngcheck.html
然后输入
pngcheck -v file.png
如果 PNG 文件中存在 bKGD 块,pngcheck 的输出将包含如下内容:
块 bKGD 位于偏移量 0x000a0,长度 6 红色 = 0x00e0,绿色 = 0x00e0,蓝色 = 0x0080
您可能已经拥有 ImageMagick(版本 6.6.9 或更高版本),因此您还可以通过输入以下命令来获取 bKGD 块信息以及许多其他内容
identify -verbose file.png
并寻找
背景颜色:srgba(224,224,128,1)
png:bKGD: 发现了块(参见上面的背景颜色)
如果只出现“背景颜色”而没有出现“png:bKGD:...”,则识别报告的是 ImageMagick 的默认背景颜色,并且 PNG 文件中不存在 bKGD 块。