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

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

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

我将非常感激您的帮助。

由于 jpg 不支持透明度,那么我该如何指定输出 jpg 的背景颜色的十六进制值?目前默认为#ffffff?我试过这个脚本,但它给输出 jpg 提供了白色背景:

mogrify -quality 100 -format jpg *.png

更新

我在 Inkscape 中创建了这些 png 文件。我应该提到,将这些 png 转换为 jpg 的目的是为了消除圆形或有角度的物体上的锯齿状边缘。png 目前有锯齿状边缘,我读到将它们转换为 jpg 可能会解决这个问题。但是,通过 Christian Skjødt 的回答中概述的方法进行转换会使图像的锯齿状边缘更加严重。有没有办法可以将 png 转换为 jpg,同时使用抗锯齿或其他技术来消除锯齿状边缘?谢谢您的帮助。

答案1

JPEG 格式不支持透明度 - 因此,如果您想(或必须)使用 JPEG 格式,则无法保持透明背景。请参阅维基百科了解不同图像格式的功能。

请注意JPEG 2000确实支持透明度,但比 JPEG 格式少见得多。这是否是可行的替代方案取决于您的用例。

答案2

对于你的第二个问题:

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

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

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

答案3

抱歉,没有办法,jpeg格式没有支持,alpha channel所以你不能有透明度。

答案4

根据您要对图像执行的操作,可以将 alpha 通道放入单独的灰度图像或位掩码中,并且使用该图像的程序会将辅助图像应用为半透明/透明值。虽然最终最好修改程序以使其支持 alpha png。

相关内容