indexed-png图像中的Alpha透明度

时间:2010-11-15 11:55:37

标签: image png alpha indexed

这是一张图片: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?

5 个答案:

答案 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)

是的,我知道你的意思。 Fireworks是我所知道的唯一可以毫无问题地创建和编辑PNG8 + Alpha的图像编辑程序。我希望更多的绘图程序能支持这种格式,因为Fireworks很贵!

答案 4 :(得分:0)

我在GIMP中找到了一种创建或转换具有减少的调色板和alpha通道的图像的方法。 诀窍是在图层上添加遮罩。

完整的复制步骤:

  1. 将图像放在一层
  2. 在图层上添加遮罩。选择传输层的Alpha通道。
  3. 转换为索引(图像->模式->索引...)
  4. 另存为PNG

现在,图像的颜色减少了,尺寸也减小了,但仍保持了平滑的透明度。

相关问题