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 将 pdf 转换为 png 时出错
使用imagemagick将EPS转换为PNG时如何添加填充?
使用 ImageMagick 将 gif 转换为 png 时出现“转换:不正确的图像标题”错误