18

这是一张图片: 这张图片是一个简单的从黑色到透明的渐变,保存在完整的 RGBA PNG 中。 渐变1

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

这又是同一张图片,只是这次它被我编写的 PHP 脚本转换为 indexed-alpha PNG:
渐变3

所以我的问题是:为什么 GIMP 和 Photoshop 无法支持索引图像的部分透明度,而 PHP 脚本清楚地表明可以毫无问题地创建这样的图像?
调色板包含 alpha 信息的图像有什么“错误”吗?
一个更与编程相关的问题:最后一张图像中的这种透明度在 Internet Explorer 6 中是否有效?

4

5 回答 5

6

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

于 2012-12-30T19:43:37.803 回答
5

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

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

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

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

于 2011-09-06T02:53:51.267 回答
5

郑重声明,PNG 并不真正支持带有 alpha 通道的索引图像。真正发生的是,PNG 允许您使用这些颜色的 alpha 值向颜色表(即索引)添加其他颜色……而不是完整的 alpha 通道。FWIW...

于 2012-07-20T22:32:07.323 回答
1

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

于 2011-01-23T11:16:11.380 回答
0

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

重现的完整步骤:

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

现在您的图像已经减少了颜色并减小了尺寸,但它保持了平滑的透明度。

于 2020-01-30T20:26:44.060 回答