我正在以编程方式使用ImageMagick将一些用户定义的转换应用于图像。我正在使用的脚本生成一个新进程并运行ImageMagick,其参数类似于:
convert /tmp/source -resize 100x /tmp/transformed
然后它从/tmp/transformed
读取转换后的图像。我想添加将图像转换为另一种图像格式的选项,但是从查看IM文档一段时间后,我能看到的唯一方法是使用.<ext>
附加输出目标,像这样:
convert /tmp/source -resize 100x /tmp/transformed.png
还有其他方法吗?使用预先存在的脚本执行此操作的最简单方法是提供参数,但我找不到它。类似的东西:
convert /tmp/source -resize 100x -format png /tmp/transformed
这可能吗?或者我不得不将扩展名附加到输出目的地?
答案 0 :(得分:2)
我不确定你对于添加后缀有什么厌恶,但Fred的优秀建议的另一种选择是使用“格式说明符”前缀,这会使你的基本文件名保持不变 - 如果这就是你想要实现的目标。
convert Image -resize 100x PNG:/tmp/transformed/Image
用PNG:
,GIF:
等代替JPEG:
以适应。
答案 1 :(得分:1)
-format png用于mogrify而不是我理解的转换。您需要为输入指定后缀,并为输入和输出文件名中的输出指定所需的后缀。
new NavItem({
key: "sales",
target: "sales",
text: "Sales"
})
假设png是所需的输出格式。
也许我误解了你想要的东西。如果是,请澄清。源和变换变量中的后缀是什么?如果是这样,您可以使用IM以字符串格式使用%t和%e将源文件名与其后缀分开。但是对于输出,您必须使用文件系统解析它。见http://www.imagemagick.org/script/escape.php
或者,使用支持-format png
的mogrifyconvert /tmp/source.suffx -resize 100x /tmp/transformed.png
这将使输入目录中的每个文件都带有后缀.suffix并将其转换为png。但是,我建议您创建一个新目录来保存所有输出图像,因为它会覆盖您的输入文件。然后,您需要将-path path2 / newdirectory添加到上面的命令中。见http://www.imagemagick.org/Usage/basics/#mogrify
与源和目标相关联的实际文件名是什么?这些只是真正的文件名变量吗?