如何使用imagemagick将HEIC转换为JPG并保留质量?

24

我想使用ImageMagick批量转换.heic图像(例如iPhone照片)为.jpg文件,以尽可能保留原始图像的质量。需要说明的是,输出大小不是问题。

我一直在使用

magick input.heic -quality 100% output.jpg

能否做得更好?


@xenoid 哦,我并不是特别依赖于“-quality”参数,只是到目前为止一直在使用它。如果您知道任何更好的方法来保持质量而不会使文件大小膨胀,请随时分享 :) - sobutterysosmooth
1
在85-90%的情况下,您已经保持了“质量”。值得一提的是,在昂贵的DLSR相机上,JPEG质量约为97%。 - xenoid
2
@MarkSetchell 避免使用HEIC的一个原因是它仍然比JPEG得到的支持要少。例如,在Windows 10文件资源管理器中预览这些文件/在照片应用程序中打开它们,我需要从Microsoft的应用商店购买0.99欧元的“扩展”。:-/ - Per Lundberg
1
HEIC是无损的,但JPG即使在100%质量下也是有损压缩。-quality参数用于编写输出而不是读取输入。因此,它仅影响输出JPG。底线是,无论您从HEIC或PNG或任何无损格式输入开始,编写到JPG时始终会失去质量。 - fmw42
1
@fmw42 HEIC比JPEG更高质量,但它是一种压缩格式(使用HEVC https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding),而不是无损格式。 - ajgryc
显示剩余3条评论
2个回答

9
你可以使用以下方法批量将HEIC转换为jpg,但会损失一些质量:
mogrify -format jpg *.HEIC

我觉得在使用mogrify之前,你需要先使用magick命令,对吗?所以应该是magick mogrify ... - undefined
通常情况下,人们会设置自己的路径,以包含imagemagic的bin目录中的所有命令,这样你就可以直接调用mogrify,因为它应该是该bin目录中的一个命令。 - undefined
哦,我明白了。也许在Mac/Linux上可能是这样,但我几天前下载的官方Windows二进制文件只是一个magick.exe,在使用任何子工具之前都需要先输入这个命令。所以你的答案一开始对我不起作用。 - undefined
啊,是的,Windows版本可能需要额外的注意哦 :) - undefined

6
根据ImageMagick官网:https://imagemagick.org/script/formats.php,不可能更好地处理HEIC图像。如下所示:

将质量设置为100可生成无损的HEIC图像。需要使用libheif代理库。

我理解的无损是原始图片没有任何丢失。但由于你正在转换为另一种文件类型,可能会有一些丢失,你是否看到了任何伪影或问题?

只是一点说明:原帖作者想要输出JPG图像。源格式是HEIC,但输出应为JPG。所以你从网站提供的报价并不是很相关。 - undefined
1
@SimonEast 谢谢你指出我明显的疏忽。我对我的回答进行了重大修改。已经过去2年了,没有人提到过,但仍然得到了赞同,我想我们都只是匆匆浏览或者希望得到可能不正确的答案。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接