ImageMagick 不会将 .png 转换为 .jpg

Posted

技术标签:

【中文标题】ImageMagick 不会将 .png 转换为 .jpg【英文标题】:ImageMagick won't convert .png to .jpg 【发布时间】:2021-07-05 02:37:54 【问题描述】:

所以我想将一堆图像(很多,它来自数据集)从.png转换为.jpg,建议使用imagemagick(以及'parallel',但问题在于imagemagick目前)。 转换没有正确完成,我试过了

magick example.png example.jpg

convert example.png example.jpg

但似乎 imagemagick 只是重命名文件,因为生成的图像标题为“example.jpg”,但使用

identify -verbose example.jpg

显示图像是 .png 文件。事实上,当我手动将文件重命名为“example.png”时,图像加载得很好。

有没有人遇到过这个问题,并找到了解决方案?我不一定要使用 imagemagick,任何可以在合理的时间范围内批量转换大量图像的工具也很棒。 干杯!

【问题讨论】:

【参考方案1】:

当您要求 JPEG 时,ImageMagick 似乎不太可能创建 PNG 文件。如果您想将 PNG 转换为 JPEG,请尝试以下步骤:

# Remove anything likely to confuse
rm result.jpg 2> /dev/null

# Convert PNG to JPEG
magick input.png result.jpg

# Check result using 'file' command
file input.png result.jpg

input.png:  PNG image data, 70 x 46, 8-bit/color RGB, non-interlaced
result.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 70x46, components 3

# Check result (in hex)
xxd result.jpg | head -4

00000000: ffd8 ffe0 0010 4a46 4946 0001 0100 0001  ......JFIF......
00000010: 0001 0000 ffdb 0043 0003 0202 0202 0203  .......C........
00000020: 0202 0203 0303 0304 0604 0404 0404 0806  ................
00000030: 0605 0609 080a 0a09 0809 090a 0c0f 0c0a  ................

【讨论】:

您好,很抱歉耽搁了我一直很忙。我试过了,但是当我运行“文件”命令时,我得到:“0000000000.png:PNG 图像数据,1242 x 375,8 位灰度,非隔行扫描”和“0000000000.jpg:PNG 图像数据,1242 x 375, 8-bit grayscale, non-interlaced”(文件名是零)。 我会尝试重新安装imagemagick,甚至可能是旧版本,也许这是一个错误

以上是关于ImageMagick 不会将 .png 转换为 .jpg的主要内容,如果未能解决你的问题,请参考以下文章

Imagemagick 将 png 转换为 jxr

使用 ImageMagick 将 pdf 转换为 png 时出错

使用imagemagick将EPS转换为PNG时如何添加填充?

使用 ImageMagick 将 gif 转换为 png 时出现“转换:不正确的图像标题”错误

imagemagick 将 RGB PNG 转换为 CMYK PDF

使用 ImageMagick 将 PNG 文件转换为 PDF 时出现粗糙的边缘