我有一个文件夹,里面有透明背景的 png 文件。我想从命令行转换它们并保留图像的透明背景。
我将非常感激您的帮助。
由于 jpg 不支持透明度,那么我该如何指定输出 jpg 的背景颜色的十六进制值?目前默认为#ffffff
?我试过这个脚本,但它给输出 jpg 提供了白色背景:
mogrify -quality 100 -format jpg *.png
更新
我在 Inkscape 中创建了这些 png 文件。我应该提到,将这些 png 转换为 jpg 的目的是为了消除圆形或有角度的物体上的锯齿状边缘。png 目前有锯齿状边缘,我读到将它们转换为 jpg 可能会解决这个问题。但是,通过 Christian Skjødt 的回答中概述的方法进行转换会使图像的锯齿状边缘更加严重。有没有办法可以将 png 转换为 jpg,同时使用抗锯齿或其他技术来消除锯齿状边缘?谢谢您的帮助。
答案1
答案2
对于你的第二个问题:
要在转换图像时指定背景颜色,您可以使用以下-fill
选项:
mogrify -quality 100 -format jpg -fill "#FF0000" -opaque none *.png
使用-background
可提供类似的结果。不要忘记-opaque none
。
答案3
抱歉,没有办法,jpeg
格式没有支持,alpha channel
所以你不能有透明度。
答案4
根据您要对图像执行的操作,可以将 alpha 通道放入单独的灰度图像或位掩码中,并且使用该图像的程序会将辅助图像应用为半透明/透明值。虽然最终最好修改程序以使其支持 alpha png。