创建PNG 8位透明图像的软件

6

我正在寻找可以创建PNG8格式透明图像的软件,就像这篇文章所述。

注意:虽然我需要Linux的解决方案,但请提交其他操作系统的答案。

8个回答

6

pngquant 在保留完全透明度的同时,很好地将图像转换为 PNG8 格式。

如果您注重文件大小,您可能也会对 pngcrush 感兴趣,它通常可以(无损地)大幅压缩 PNG 文件。


2
我还会推荐使用pngout;根据我的经验,它由于其自定义DEFLATE库而往往能够击败几乎所有其他优化器。 - Dark Shikari
哇。刚试用了pngout,和libpng生成的东西相比简直让人惊艳。我希望那个家伙能发布他自定义的zlib... - Mike F
2
为了简化压缩8位PNG图像,我们在tinypng.org上创建了一个在线服务。 - molf

4

我也需要一个Linux解决方案,发现pngnq能够很好地完成工作。它似乎专门设计用于创建带有alpha通道的8位PNG图像。

apt-get install pngnq # If on Ubuntu/Debian

1

这取决于你的原始图像的具体情况。

如果你的图像已经包含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可能也不值得。

  • 我所知道的唯一替代品是已经提到的pngquantpngnq。我在pngnq上运行得更好,但这可能取决于您正在处理的文件上哪种量化策略效果最佳。

    不幸的是,我注意到它们都不能很好地处理少量透明度(例如,具有透明圆角的不透明图像)。


1
您提供的链接涉及ImageMagick,这是一个在Linux上操作图像的优秀工具包。

我按照评论尝试使用Image Magick,但生成的图像混乱不清。 - grom
我认为Image Magick不支持具有超过1位Alpha透明度的8位PNG。至少我无法弄清楚如何让它生成它们。 - davr

1

啊,如果我没记错的话,几个月前我读这篇文章时,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通道优雅,但它需要更少的存储空间,并且对于许多常见情况足够了。” 看起来唯一的透明颜色比完全透明调色板更受欢迎。至少浏览器做得很好。


1

对于Mac用户而言,ImageOptim和ImageAlpha是GUI界面,可以运行pngcrush、pngquant以及其他一些通常需要命令行压缩工具。http://pngmini.com/


0

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)下载。


请不要在编辑无法重新打开的问题时成为第一个编辑者,除非您的编辑可以使问题重新打开(即使它变得符合主题)。问题只有一次免费进入重新打开队列的机会。您的编辑此处剥夺了原作者轻松让可能投票重新打开的人看到他们的问题的机会,而只是为了纠正语法而进行的编辑。是的,如果问题已经打开,或者如果您不是在问题关闭后第一个编辑问题的用户,或者如果您投票关闭了问题,那么很好,请修复帖子的语法。 - Makyen
但是,如果您的编辑是在关闭后的第一个编辑,并且您没有投票关闭,请不要进行此类编辑,除非它们使问题成为应该重新打开的内容。[请在阅读这些评论后在此处@我,以便我可以删除它们,因为它们与此帖子无关。] - Makyen

0

我推荐使用 "The GIMP",因为它可以输出PNG8格式并支持Linux/Windows系统。如果您想要一个快速的仅限于Windows的解决方案,我还推荐IrfanView


1
是的,通常我使用GIMP,但文章中说:“我可以肯定地确认,PhotoShop、Gimp、Paintshop Pro或Xara都没有内置此功能。” - grom
以下的文章建议使用PNG8作为GIMP的默认选项,但我可能是错误的。看起来其他人也有一些很好的建议。http://docs.gimp.org/en/gimp-images-out.html - Jordan Parmer
2
虽然GIMP允许您创建索引PNG(即PNG8),但它不支持为一个或多个调色板条目设置alpha通道。因此,无法按照文章中所述实现效果。 - grom
请注意,您链接的页面上写着:“此外,“PNG8”格式与GIF一样,仅使用一个比特用于透明度;只有两个透明度级别可用,即透明或不透明。”看起来有人在这里犯了错误。 - PhiLho
它不使用1位透明度。它使用一个索引(一种颜色)作为指定的透明颜色。通常,您会选择索引0或索引255(取决于您使用的颜色数量)作为透明颜色。 - Luke
1
卢克:在PNG8格式的图像中拥有完全的alpha透明度是可能的,但并不常见,例如高达255个级别的部分透明图像。这就是他所问的内容。GIMP不支持生成这种类型的图像……如果你将其转换为索引图像,它只会给你开/关透明度,而不是整个范围的级别。 - davr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接