ImageMagick 参数指定输出格式

Chr*_*ite 0 imagemagick

我正在以编程方式使用 ImageMagick 将一些用户定义的转换应用于图像。我正在使用的脚本生成一个新进程并使用类似于以下参数的 ImageMagick 运行:

convert /tmp/source -resize 100x /tmp/transformed
Run Code Online (Sandbox Code Playgroud)

然后它从/tmp/transformed. 我想添加将图像转换为另一种图像格式的选项,但是通过查看 IM 文档一段时间,我可以看到这样做的唯一方法是将输出目标附加.<ext>,如下所示:

convert /tmp/source -resize 100x /tmp/transformed.png
Run Code Online (Sandbox Code Playgroud)

还有其他方法吗?使用预先存在的脚本执行此操作的最简单方法是提供一个参数,但我找不到它。就像是:

convert /tmp/source -resize 100x -format png /tmp/transformed
Run Code Online (Sandbox Code Playgroud)

这可能吗?或者我是否不得不将扩展名附加到输出目的地?

Mar*_*ell 6

我不确定您对附加后缀的反感是什么,但是 Fred 出色建议的另一种替代方法是使用“格式说明符”前缀,这将使您的基本文件名保持不变 - 如果这是您想要实现的目标。

convert Image -resize 100x PNG:/tmp/transformed/Image
Run Code Online (Sandbox Code Playgroud)

替换PNG:GIF:, JPEG:etc 以适应。

  • 在管道中使用“convert”(写入标准输出)时也很有用,例如“curl http://xyzzy/img.png | 转换-调整大小 64x - png:- | Base64 &gt; 输出.b` (3认同)