设置背景颜色时,如何将.png的文件夹转换为.jpg?


10

我有一个具有透明背景的png文件文件夹。我想从命令行转换它们并保持图像的透明背景。

我将不胜感激。

由于jpg不支持透明度,因此如何指定输出jpg的背景色的十六进制值?现在默认为#ffffff?我已经尝试过此脚本,但是它为输出jpgs提供了白色背景:

mogrify -quality 100 -format jpg *.png

更新资料

我在inkscape中创建了这些png文件。我应该提到,将这些png转换为jpg的目标是消除圆形或有角物体上的锯齿状边缘。目前,png的边缘呈锯齿状,我读到将其转换为jpg可能会解决此问题。但是,通过克里斯汀·斯科约德(ChristianSkjødt)的答案中概述的方法进行转换会使图像的锯齿边缘更加严重。有没有一种方法可以将png转换为jpg,还可以使用抗锯齿或另一种技术来消除锯齿状的边缘?谢谢您的帮助。


3
如果问题一直在变化,要回答它是非常困难的...供以后参考:尝试从一开始就将您要实现的目标包括在内。关于您的“更新2”:“锯齿状”仅仅是您选择的分辨率的结果吗?如果提高分辨率(“导出位图...”对话框中的DPI编号)怎么办?
Marcel Stimberg 2011年

Answers:


3

要平滑边缘,您可以创建比目标尺寸大10倍的PNG,然后使用抗锯齿化JPG来调整尺寸。我已经使用Python和Python Imaging Library取得了很好的效果,但是我不确定如何使用其他工具来做到这一点。


28

JPEG格式不支持透明-因此,如果要(或必须)使用JPEG格式,则无法保持透明背景。有关不同图像格式功能的概述,请参见Wikipedia

请注意,JPEG 2000确实支持透明性,但是它比JPEG格式少得多。这是否是可行的选择取决于您的用例。


我可能错了,但是OP询问要设置透明区域的颜色是什么。它们被制成白色,但是OP可以使用例如蓝色。
nanofarad 2012年

16

关于第二个问题:

要在转换图像时指定背景色,可以使用以下-fill选项:

mogrify -quality 100 -format jpg -fill "#FF0000" -opaque none *.png

使用-background提供类似的结果。不要忘记了-opaque none


嘿,谢谢你的帮助。有什么办法可以通过此命令对输出jpeg进行抗锯齿?有关其他上下文,请参见上面的更新2。谢谢。
詹姆斯,


0

根据您要对图像进行的处理,可能会将alpha通道放置到单独的灰度图像或位掩码中,并且使用该图像的程序会将辅助图像用作半透明/透明值。尽管最终最好修改该程序,以便它支持alpha png。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.