这是一张图片:Gradient1 http://adamhaskell.net/img/gradient1.png
此图像是一个简单的黑色到透明的渐变,保存在完整的RGBA PNG中。
这是相同的图像,由GIMP转换为索引的alpha PNG(Photoshop产生相同的结果)
Gradient2 http://adamhaskell.net/img/gradient1b.png
如您所见,渐变现在是半透明的,半透明的。
这是同样的图像,只是这次它被我编写的PHP脚本转换为索引的alpha PNG:
Gradient3 http://adamhaskell.net/img/gradient1c.png
所以我的问题是:当PHP脚本清楚地显示可以创建没有问题的图像时,为什么GIMP和Photoshop无法支持索引图像的部分透明度?
对于其托盘包含alpha信息的图像,有什么“错误”吗?
更多与编程相关的问题:上一张图片中的透明度是否适用于Internet Explorer 6?
答案 0 :(得分:5)
我终于找到了实际的答案:有一个元数据条目允许您定义颜色表中每种颜色的alpha值。大多数图形程序都没有使用它,但它确实存在并且可以使用,特别是GD。
答案 1 :(得分:4)
除了fireworks之外的另一个选项是pngquant,这是一个命令行应用程序,它将rgba png转换为具有透明度的索引png。
我发现this post更多地讨论了如何使用它。
IE6及更早版本的Windows不支持可变透明度PNG而不会产生烦人的变通方法。索引的PNG将仅显示通常非常好的完全不透明的部分。投影将消失,但徽标或图标的不透明部分将继续显示。
此页面提供了更好的解释和说明,包含更多png压缩和量化工具:http://calendar.perfplanet.com/2010/png-that-works/
答案 2 :(得分:4)
为了记录,PNG不支持带alpha通道的索引图像。真正发生的是PNG允许您使用这些颜色的alpha值向颜色表(即索引)添加其他颜色...而不是完整的Alpha通道。 FWIW ...
答案 3 :(得分:1)
答案 4 :(得分:0)
我在GIMP中找到了一种创建或转换具有减少的调色板和alpha通道的图像的方法。 诀窍是在图层上添加遮罩。
完整的复制步骤:
现在,图像的颜色减少了,尺寸也减小了,但仍保持了平滑的透明度。