indexed-png图像中的Alpha透明度

Nie*_*sol 16 png alpha indexed image

这是一个图像:Gradient1 http://adamhaskell.net/img/gradient1.png
此图像是一个简单的黑色到透明的渐变,保存在完整的RGBA PNG中.

这是相同的图像,由GIMP转换为索引的alpha PNG(Photoshop产生相同的结果)
Gradient2 http://adamhaskell.net/img/gradient1b.png
正如您所看到的,渐变现在是半透明的,半 -透明.

这是同一个图像,只是这次它被我写的PHP脚本转换为索引-αPNG:
Gradient3 http://adamhaskell.net/img/gradient1c.png

所以我的问题是:为什么GIMP和Photoshop无法支持索引图像中的部分透明度,当PHP脚本清楚地显示这样的图像可以创建没有问题?
对于其托盘包含alpha信息的图像,有什么"错误"吗?
更多与编程相关的问题:上一张图片中的透明度是否适用于Internet Explorer 6?

sph*_*box 5

除了烟花之外的另一个选项是pngquant,这是一个命令行应用程序,可以将 rgba png 转换为具有透明度的索引 png。

我发现这篇文章更多地讨论了如何使用它。

Windows 中的 IE6 及更早版本不支持可变透明度 PNG,没有烦人的解决方法。索引的 PNG 只会显示通常效果很好的完全不透明的部分。阴影会消失,但徽标或图标的不透明部分会继续显示。

这个页面有更好的解释和说明,有更多的 png 压缩和量化工具:http : //calendar.perfplanet.com/2010/png-that-works/


小智 5

根据记录,PNG实际上不支持带有Alpha通道的索引图像。真正发生的是,PNG允许您将其他颜色的Alpha值添加到颜色表(即索引)中,而不是完整的Alpha通道。FWIW ...


Nie*_*sol 5

我终于找到了实际答案:有一个元数据条目允许您定义颜色表中每种颜色的alpha值.大多数图形程序都没有使用它,但它确实存在并且可以使用,特别是GD.