如何在 ImageMagick 中使用特定于格式的选项?

Min*_*hĩa 3 imagemagick

目前我正在尝试转换为 HEIF,但唯一与 HEIF 相关的选项是 heic:preserve-orientation (在 CLI 选项中定义)。如何对 HEIF 和其他格式使用其他特定于格式的设置,例如质量、无损模式...?谢谢!

编辑:对于我的情况,我使用-define heif:quality=x它没有任何区别x

Mar*_*ell 5

您可以使用以下命令检查已安装的ImageMagick版本中的 HEIC/HEIF 支持:

magick identify -list format | grep -Ei "HEIC|HEIF|Mode"
Run Code Online (Sandbox Code Playgroud)

我在 ImageMagick 中唯一define能找到的是你提到的那个。我通过进入 git 存储库并运行来进行搜索:

find . -type f -exec grep -Ei "heic:|heif:" {} +
Run Code Online (Sandbox Code Playgroud)

这使:

./coders/heic.c:  option=GetImageOption(image_info,"heic:preserve-orientation");
./www/command-line-options.html:    <td>heic:preserve-orientation</td>
Run Code Online (Sandbox Code Playgroud)

如果您想尝试不同的压缩选项,可以使用以下命令检查安装中可用的选项:

magick identify -list compress
Run Code Online (Sandbox Code Playgroud)

输出

B44A
B44
BZip
...
Fax
Group4
...
JPEG
LosslessJPEG
Lossless
LZMA
LZW
None
...
Zstd
Run Code Online (Sandbox Code Playgroud)

然后您可以从该列表中选择您想要使用的一个并按如下方式使用它:

magick input.png -compress lossless result.heic
Run Code Online (Sandbox Code Playgroud)

您也可以使用常规(正常)-quality设置,如下所示:

magick input.jpg -quality 80 result.heic
Run Code Online (Sandbox Code Playgroud)

根据您自己的评论和实验,我了解到这-quality -1会导致无损压缩。