Fireworks 中的 PNG8+Alpha(颜色图)与其他地方(RGBA)不同/更小。为什么?

标签 png alpha png-24 png-8

在 Fireworks 中,当您导出具有 Alpha 透明度的 PNG8 文件时,生成的文件将如下所示:

png8-fireworks.png: PNG image data, 500 x 500, 8-bit colormap, non-interlaced

如果使用其他工具(PNGOUT、Smush.it)转换 32 位 PNG,结果如下所示:

png24-smushit.png:  PNG image data, 500 x 500, 8-bit/color RGBA, non-interlaced
png8-pngout.png:    PNG image data, 500 x 500, 8-bit/color RGBA, non-interlaced

具体有什么区别?它们都有 alpha 透明度,但 Fireworks 文件为 8KB,而其他文件为 20KB。现在 Fireworks 文件的质量明显较低(即渐变上有 strip )。

对于某些图像,Fireworks 中的 PNG8+alpha 效果很好,并且文件大小相对较小。我只是无法弄清楚 Fireworks 正在做什么以及它与其他方法有何不同。

最佳答案

PNG8 文件是一种非常高效的格式。它会找到图像中的独特颜色,并将这些颜色保存在一个小调色板中。最酷的部分是它还保存了调色板中每种颜色的 alpha 透明度。 (如果图像中有三个纯红色 (#FF0000),但每个都有不同的 Alpha 值,比如 255、128、65,它将在调色板中保存三个条目。

您还可以在 Fireworks 中选择将调色板大小限制为 2 的幂,这样您就可以减少使用的颜色以节省更多费用。通常,256 色图像在 64 色下看起来不错,并且可以节省大量重量。

关于Fireworks 中的 PNG8+Alpha(颜色图)与其他地方(RGBA)不同/更小。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1099058/

相关文章:

css - Chrome Mac 不能很好地渲染非常小的 PNG

c++ - 将 PNG 类型资源转换为 cv::Mat 时的 CreateDIBSection ERROR_TAG_NOT_FOUND

image-processing - 批量处理 SVG 到带有边框的 PNG

c++ - SDL2 Alpha 未出现

iphone - 理论上是: How is the alpha component premultiplied into the other components of an PNG in iPhone OS,,如何才能正确地对其进行预乘呢?

browser - png-24 和浏览器支持

html - 在 Windows 7 上使用 imagemagick 将 HTML 转换为 PNG

android - 如何使用 BitmapFactory.decodeByteArray() 捕获 "png error"?

android - 我可以从 Google Play 删除已发布的 alpha 测试应用程序吗?

unity3d - (Unity) 将轮廓添加到 Alpha Cutout Shader