我发誓这张图片被正确转换为带有黑色线条的白色背景 JPG。这是原始的 PNG(以防 SE 在您上传时更改它)。它看起来是这样的:
但这是我看到的 JPG convert fire.png fire.jpg
:
再次,我曾经成功过,使用精确的 PNG 输入图像,成功地将这个透明 PNG 转换为白色背景 JPG。但现在它不起作用了。我能想到的唯一改变是,我已将其保存在 GitHub 分支中,创建了一个新的 GitHub 分支,将文件移动到新文件夹中,提交并合并回主分支。所以也许二进制图像在 Git 中以某种奇怪的方式发生变化?
另一件事是,这是否与图像所在的文件夹或文件路径有关?
convert ../external-directory/fire.png ./local-directory/fire.jpg
convert /absolute/path/fire.png ./local-directory/fire.jpg
convert "/absolute/path/fire.png" "./local-directory/fire.jpg"
我尝试了几种带/不带引用的组合以及不同的文件路径,但没有变化。
知道哪里出了问题,如何修复吗?也许我疯了,因为图像是透明的,这就是导致问题的原因。但我发誓这之前转换成功了。
我在装有 ImageMagick 7.1.1-27 的 Mac M3 上。
答案1
据我所知,如果无法表示透明度,ImageMagick 总是使用黑色作为默认背景。通过以下方式指定自定义背景颜色-background
:
magick convert foo.png -background "#ffffff" -alpha remove -quality 90 foo.jpg
答案2
我使用的几个应用程序都认为这张图片不是合法的 PNG 文件,所以它可能已损坏或属于外来变体。无论如何,除了在浏览器中,我无法打开它来检查任何东西。
如果图像使用透明度,它将被删除,留下黑色。您可以将颜色更改为您想要的任何颜色:
convert image.png -background somecolor -flatten image.jpg