graphicsmagick - 如何使用标准输入和输出来管道两个命令产量

时间:2015-12-05 16:53:20

标签: pipe std graphicsmagick

我想使用管道连接两个不同的graphicsmagick命令,就像创建平铺图像一样,在完成此操作后添加边框。我从手册中了解了什么" - "应该用作标准输入或输出,所以这就是我试过的:

gm montage -geometry +20+20 -tile 2x2 /home/pi/*.jpg - | gm convert -border 150x150 - /home/pi/test.jpg 

但是由于我不明白的原因,它打破了这个错误信息:

gm montage: No encode delegate for this image format (-) [No such file or directory].

知道我做错了什么吗?任何暗示都将受到高度赞赏......

1 个答案:

答案 0 :(得分:2)

尝试指定要通过stdin / stdout发送的文件类型,例如MIFF(Magick图像文件格式),它将保留所有元数据并对管道中的图像进行无损编码:

gm montage -tile 2x2 *.jpg miff:- | gm convert miff:- -border 150x150 result.png

顺便说一下,你也可以使用PNG:-JPEG:- - 只是MIFF是最好的。