ImageMagick - 如何调整大小和位置

时间:2014-01-24 05:28:33

标签: imagemagick

我想使用ImageMagick(linux命令行)执行以下操作:将图像A的大小调整为其大小的125%,然后将其放在较大的图像B上 - 在B的中心,但向右偏移175px

以下对我不起作用,从我正在阅读的内容来看,它应该:

    composite -gravity center -geometry '125%+175+0' <imageA_path> <imageB_path> <output_file_path>

我也试过这个没有运气:

    convert <imageA_path> -resize 125% | composite -gravity center -geometry +175+0 - <imageB_path> <output_file_path>

有没有人有任何建议?谢谢!

3 个答案:

答案 0 :(得分:0)

对于resize命令,您需要指定并输入图像和输出图像。您还需要在复合命令上指定输入图像。

    convert <imageA_path> -resize 125% <resized_imageA_path> | composite -gravity center -geometry +175+0 <resized_imageA_path> <imageB_path> <output_file_path>

您可以使用相同的,但这将使用调整大小的版本覆盖原始imageA。

如果指定新的图像路径/名称,则会将调整大小保存为新图像。如果您不想保留这些图像,那么您可以指定一个目录,您可以在其中轻松删除在那里创建的所有图像。

希望有所帮助。

编辑:没关系,我刚看到你的评论。

答案 1 :(得分:0)

就像Moogle的答案一样,你可以用这两个命令来解决你的问题 - 但是使用-你可以获得管道的全部功能。

convert <imageA_path> -resize 125% - | composite -gravity center -geometry +175+0 - <imageB_path> <output_image_path>

应该没有中间文件。

答案 2 :(得分:0)

您可以使用堆栈

使用单个命令行执行此操作
composite -gravity center -geometry +175+0 \( -resize 125% <imageA_path> \) <imageB_path> <output_file_path>

括号中的操作首先运行,结果用于代替文件。确保\(\)分隔符周围有空格,否则您将收到解析错误。