convert 和 mogrify:在现代版本的 ImageMagick 中使用它们的正确方法

joh*_* j. 4 windows imagemagick image-processing

要使用旧版本的 ImageMagick 创建图像缩略图,可以通过以下方式:

(为了帮助进一步参考,示例已编号。)

1. convert.exe image.jpg -thumbnail 100x100 ./converted/converted_image.jpg
2. mogrify.exe -thumbnail 100x100 -path ./converted image.png
Run Code Online (Sandbox Code Playgroud)

现在我有了 ImageMagick 7(昨天才下载的),在安装过程中我特意关闭了“安装旧版实用程序(例如 convert.exe)”复选框。也就是说,我的 ImageMagick 目录中只有一个实用程序:magick.exe.

我试图了解根据现代 ImageMagick 版本执行上述操作的正确且面向未来的方法是什么。

引自https://imagemagick.org/script/porting.php#cli

animate, compare, composite, conjure, convert, display, identify, import, mogrify, montage,stream

为了减少命令行实用程序的占用空间,这些实用程序是指向magick实用程序的符号链接。您也可以从magick实用程序中调用它们,例如magick convert logo: logo.png用于调用magick实用程序。

在同一来源:

使用由magick实用程序激活的 IMv7 解析器,设置将依次应用于内存中的每个图像(如果有)。而一个选项:只需要全局应用一次。直接使用其他实用程序,或作为magickCLI的参数(例如magick convert)利用旧式解析器。

唔...

作品:

3. magick.exe convert image.jpg -thumbnail 100x100 ./converted/converted_image.jpg
4. magick.exe mogrify -thumbnail 100x100 -path ./converted image.png
Run Code Online (Sandbox Code Playgroud)

仍然有效(与 相同的方式magick.exe convert):

5. magick.exe image.jpg -thumbnail 100x100 ./converted/converted_image.jpg
Run Code Online (Sandbox Code Playgroud)

但是,以下一个不起作用(预期:应该以与 相同的方式工作magick.exe mogrify):

6. magick.exe -thumbnail 100x100 -path ./converted image.png
Run Code Online (Sandbox Code Playgroud)

我的问题是:我应该使用哪种语法 forconvert和 for mogrify?3 和 4,或 4 和 5,或不同的东西?

Mar*_*ell 6

AFAIK,我很高兴添加任何建议的更正,它的工作原理是这样的。

第一个想法是,如果可能,您应该使用版本 7,并且所有旧的 v6 命令,WITH THE EXCEPTION OF convert应该以magick. 这意味着你应该使用这些

magick ...                # in place of `convert`
magick identify ...       # in place of `identify`
magick mogrify ...        # in place of `mogrify`
magick compare ...        # in place of `compare`
magick compose ...        # in place of `compose`
Run Code Online (Sandbox Code Playgroud)

如果你使用magick convert你会得到旧的 v6 行为,所以你想避免这种情况!

此外,v7 对排序更加挑剔。你必须在做之前指定你想要做的事情的图像。这意味着旧的 v6 命令,例如:

convert -trim -resize 80% input.jpg output.jpg
Run Code Online (Sandbox Code Playgroud)

现在必须变成:

magick input.jpg -trim -resize 80% output.jpg     # magick INPUT operations OUTPUT
Run Code Online (Sandbox Code Playgroud)

因此,专门查看您的编号示例:

  1. 应该变成:

    magick image.jpg -thumbnail 100x100 ./converted/converted_image.jpg

  2. 应该变成:

    magick mogrify -thumbnail 100x100 -path ./converted image.png

  3. 调用旧的 v6 行为,因为您使用magick convert而不是 plain magick,应该避免

  4. 正确的现代语法

  5. 正确的现代语法

  6. 看起来你的意思是magick mogrify因为你没有给出输入和输出文件名,因为你使用了-path,但看起来你不小心省略了mogrify. 如果您没有不小心省略mogrify,那么您可能打算使用旧式convert命令,并且需要一个输入和一个输出文件,并且您需要在-thumbnail.

关键词:用法、错误、现代、v7 语法、素数。