代码之家  ›  专栏  ›  技术社区  ›  Niet the Dark Absol

索引png图像中的Alpha透明度

  •  13
  • Niet the Dark Absol  · 技术社区  · 14 年前

    这是一张图片: Gradient1
    此图像是一个简单的黑色到透明渐变保存在完整的RGBA PNG。

    这是相同的图像,由GIMP转换为索引alpha PNG(Photoshop产生相同的结果)
    Gradient2
    如您所见,渐变现在是半不透明、半透明的。

    这里又是同一张图片,只是这一次它被我写的一个PHP脚本转换成了索引alpha PNG:
    Gradient3

    所以我的问题是:为什么GIMP和Photoshop不能支持索引图像的部分透明性,而PHP脚本清楚地表明,这样的图像可以毫无问题地创建?
    有什么“错误”的图像,其托盘包含阿尔法信息?
    另一个与编程相关的问题是:在InternetExplorer6中,上一张图片的透明度是否有效?

    4 回复  |  直到 5 年前
        1
  •  5
  •   Rikk Carey    12 年前

    对于记录,PNG并不真正支持带有alpha通道的索引图像。真正发生的是,PNG允许您向颜色表(即索引)中添加其他颜色,其中包含这些颜色的alpha值。。。不是一个完整的alpha通道。前进。。。

        2
  •  5
  •   Niet the Dark Absol    12 年前

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

        3
  •  4
  •   sphereinabox    13 年前

    除了焰火还有一个选择 pngquant ,一个命令行应用程序,将rgba png转换为带透明度的索引png。

    我发现 this post 关于如何使用它有更多的讨论。

    windows中的IE6和早期版本不支持可变透明度PNG,而不支持烦人的解决方案。索引的PNG只显示完全不透明的部分,这些部分通常工作得很好。一个阴影将消失,但不透明部分的标志或图标将继续显示。

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

        4
  •  1
  •   Rolen47    14 年前

    是的,我知道你的意思。焰火是唯一一个图像编辑程序,我知道,可以创建和编辑PNG8+阿尔法没有问题。我希望更多的绘画程序支持这种格式,因为烟花是昂贵的!