我正在寻找可以创建PNG8格式透明图像的软件,就像这篇文章所述。
注意:虽然我需要Linux的解决方案,但请提交其他操作系统的答案。
我也需要一个Linux解决方案,发现pngnq能够很好地完成工作。它似乎专门设计用于创建带有alpha通道的8位PNG图像。
apt-get install pngnq # If on Ubuntu/Debian
这取决于你的原始图像的具体情况。
如果你的图像已经包含256种或更少的颜色(RGBA值),你只需要使用pngout (Windows) (Linux/BSD/Mac OS X ports),这是你应该已经在优化PNG图像时使用的工具。它不能量化图像,但可以将它们保存为8位,包括透明度。只需传入/c3
(或Linux等上的-c3
)颜色选项,强制将图像保存为PNG8格式。
如果你的图像包含超过256种颜色,你有几个不完美但可行的选择:
Adobe Fireworks在图像质量方面可能是最好的选择。如果您只需要转换几张图片,或者不介意依赖Fireworks进行批处理,它可以胜任这项工作。我发现它有时会限制调色板中颜色的数量,从而创建比必要更差的质量图像。我不知道这是否是CS3中的一个错误,在CS4中已经修复。
如果您不使用Windows或OS X,则显然无法使用此选项,仅为此购买Fireworks可能也不值得。
我所知道的唯一替代品是已经提到的pngquant和pngnq。我在pngnq上运行得更好,但这可能取决于您正在处理的文件上哪种量化策略效果最佳。
不幸的是,我注意到它们都不能很好地处理少量透明度(例如,具有透明圆角的不透明图像)。
啊,如果我没记错的话,几个月前我读这篇文章时,pngquant还没有Windows版本。现在我看到它有了一个版本。所以我试了一下,还试了pngnq。
后者似乎在IceAlpha.png测试图像(来自libpng.org)上做得更好,但代价是略微增加了图像大小(无论如何都可以使用pngcrush或pngout进行后处理)。
抖动算法(pngquant的两种算法和pngnq的唯一算法)不同,值得拥有两个工具,使用所有算法转换图像并查看哪个效果最佳。
值得一提的是,在Windows端,IrfanView(4.10)非常好地显示这些图像(在每个调色板条目上使用透明度级别),而XnView(1.85.1)和GIMP(2.4)仅应用完全透明/不透明的显示方式,类似于GIF:作为链接文章中示例的灯泡周围有一个透明的背景,但橙色部分是完全不透明的。
优秀的TweakPNG实用程序显示,我们有一个PLTE(调色板,222个条目)块和一个tRNS(调色板颜色的alpha值,222个条目)块。更重要的是,它允许编辑每个调色板条目、颜色和alpha级别。这可能是这种格式的一个有趣的补充工具。
关于IrfanView支持的注意事项:如果它正确处理PNG8的透明度,它就无法处理PNG文件中的伽马信息:对于toucan图像或ping-pong图像,我必须应用2.4的伽玛才能获得类似的(较浅的)颜色。
还要注意,IrfanView在将32位PNG图像转换为256时表现糟糕,只允许一个透明颜色,如果全彩色被抖动,看起来很糟糕!
我发现GIMP手册中提到:“这种“PNG8”格式,就像GIF一样,仅使用一个比特来表示透明度; 只有两个透明级别是可能的,即透明或不透明。”而ISO/W3C标准则指出:“tRNS块指定与调色板条目相关联的alpha值(用于索引颜色图像)或单个透明颜色(用于灰度和真彩色图像)。” PNG规范1.2 补充说:“尽管简单透明度不如完整的Alpha通道优雅,但它需要更少的存储空间,并且对于许多常见情况足够了。” 看起来唯一的透明颜色比完全透明调色板更受欢迎。至少浏览器做得很好。
对于Mac用户而言,ImageOptim和ImageAlpha是GUI界面,可以运行pngcrush、pngquant以及其他一些通常需要命令行压缩工具。http://pngmini.com/
Microsoft Windows:Ultimate Paint(提供免费版和共享版)。
这两个版本都可以保存为8位透明PNG图像。
它还可以保存为4位PNG(16种颜色)。与8位相比,此方法可以将文件大小减半。
输入格式包括BMP、GIF、ICO、JPG/JPEG和PNG。
Ultimate Paint Standard 2.88 LE的免费版可直接从http://www.ultimatepaint.com/up.zip(1.7 MB)下载。