我想要调整大小,裁剪并连接很多图像。 我不想将中间结果写入磁盘,只是最终结果。
我的脚本是:
montage -mode concatenate \
\( test.jpg -thumbnail "150x100>" -background white -gravity center -extent 150x100 -page 150x100+0+0 \) \
\( -clone 0 -crop 23x16+80+0 -background white -extent 23x16 \) \
\( -clone 0 -crop 23x16+16+87 -background white -extent 23x16 \) \
...
-delete 0 -quality 100% thumb.jpg
我总是遇到以下错误:
montage.im6: geometry does not contain image `test.jpg' @ warning/transform.c/CropImage/574.
我尝试使用" repage"和"页面"参数,但我没有成功。
有什么想法吗?
更新
马克问了一些例子。因此,我尝试在一个步骤中写下我想要合并的不同步骤:
convert logo: test.jpg
convert test.jpg -thumbnail "150x100>" -background white -gravity center -extent 150x100 -page 150x100+0+0 test.resized.jpg
montage -mode concatenate test.resized.jpg \
\( -clone 0 -crop 23x16+80+20 -background white -extent 23x16 \) \
\( -clone 0 -crop 23x16+92+74 -background white -extent 23x16 \) \
\( -clone 0 -crop 23x16+100+80 -background white -extent 23x16 \) \
-delete 0 -quality 100% result.thumb.jpg
答案 0 :(得分:1)
我必须承认这一个让我神秘化!我无法让你的工作如何尝试,或者我想要怎么做。我发现只有添加+repage
才能使其正常工作,但如果我这样做,忘记 -extent
,那么我最终会得到2个命令。我还发现+clone
拒绝代替-clone 0
这个例子,这也让我感到困惑。
我能使其工作的唯一方法是避免中间文件将第一个convert
的输出流式传输到第二个。
convert logo: -resize "150x100>" -background white -gravity center -extent 150x100 JPG:- | \
convert JPG:- \
\( -clone 0 -crop 23x16+80+20 \) \
\( -clone 0 -crop 23x16+92+74 \) \
\( -clone 0 -crop 23x16+100+80 \) \
-delete 0 +append out.jpg