索引 png 图像中的 Alpha 透明度

发布于 2024-10-02 11:33:42 字数 767 浏览 7 评论 0原文

这是一个图像: 渐变1
该图像是一个简单的黑色到透明渐变,以完整的 RGBA PNG 格式保存。

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

这是同一张图像,只是这次它被我编写的 PHP 脚本转换为索引 alpha PNG:
Gradient3

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

Here is an image: Gradient1

This image is a simple black-to-transparent gradient saved in full RGBA PNG.

Here is the same image, converted to indexed-alpha PNG by GIMP (Photoshop produces the same result)
Gradient2

As you can see, the gradient is now half-opaque, half-transparent.

Here is the same image again, only this time it was converted to indexed-alpha PNG by a PHP script I wrote:
Gradient3

So my question is: Why are GIMP and Photoshop unable to support partial transparency in indexed images, when the PHP script clearly shows that such an image can be created with no problems?
Is there anything "wrong" with an image whose pallette contains alpha information?
A more programming-related question: Does this transparency in the last image work in Internet Explorer 6?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

画离情绘悲伤 2024-10-09 11:33:42

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

I've finally found the actual answer: There is a metadata entry that allows you to define the alpha value of each colour in the colour table. Most graphics programs don't make use of this, but it does exist and can be used, in particular by GD.

默嘫て 2024-10-09 11:33:42

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

我找到了这篇文章其中更多地讨论了如何使用它。

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

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

Another option besides fireworks is pngquant, a command line application that will convert a rgba png into an indexed png with transparency.

I found this post which talks some more about how to use it.

IE6 and earlier in windows does not support variable transparency PNGs without annoying workarounds. An indexed PNG will only show the fully opaque parts which usually works pretty well. A drop shadow would disappear but the opaque parts of the logo or icon would continue to show.

This page has a better explanation and instructions with more png compression and quantization tools: http://calendar.perfplanet.com/2010/png-that-works/

来日方长 2024-10-09 11:33:42

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

For the record, PNG does not literally support indexed images with an alpha channel. What is really happening is that PNG allows you to add additional colors to the color table (i.e. index) with alpha values in those colors... not a complete alpha channel. FWIW...

感情洁癖 2024-10-09 11:33:42

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

Yeah I know what you mean. Fireworks is the only image editing program that I know of that can create and edit PNG8+Alpha without problems. I wish more paint programs would support this format cause Fireworks is expensive!

故事↓在人 2024-10-09 11:33:42

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

重现的完整步骤:

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

现在,您的图像已减少颜色和尺寸,但仍保持平滑的透明度。

I found a way in GIMP to create or convert an image with reduced color palette and alpha channel.
The trick is to add a mask to the layer.

Full steps to reproduce:

  1. Have your image in one layer
  2. Add a mask to the layer. Select Transfer layer's alpha channel.
  3. Convert to Indexed (Image -> Mode -> Indexed...)
  4. Save as PNG

Now your image has reduced colors and reduced size, but it keeps your smooth transparency.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文