graphicsmagick - 优化蒙太奇和合成的技巧?
graphicsmagick - tips for optimizing montage and composite?
对于一个小照相亭应用有这样的问题:
我有 4 张图片,我想使用 蒙太奇 将它们拼贴在一起。结果使用透明 PNG 和 composite 得到一个 150px 的边框。但是因为 "frame" 比基本图像大,我必须添加一个额外的 convert 以在平铺图像周围添加人工 150px 边框。
这是功能性的,但速度很慢,而且看起来不是很优雅:
gm montage -geometry +20+20 -tile 2x2 /home/pi/dev/*.jpg miff:- | gm convert -border 150x150 miff:- miff:- | gm composite /home/pi/dev/rahmen.png miff:- /home/pi/dev/partyknipse.JPG
有什么方法可以优化它并加快这个过程吗?去掉 convert?
我想复合的 -geometry 参数可能有用,但到目前为止还没有完全理解它。
最后大致应该是这样的:
red border is a png, the four grey boxes are the tiled image
不确定您的操作需要多长时间,或者您的期望是什么,但这里有一些想法...
假设我有 im1.jpg
到 m4.jpg
,这是 4 个小图像和一个较大的红色框架,它是一个 "hollow" PNG中间有个透明洞
首先,如果您要切换到 ImageMagick(而不是 GraphicsMagick),您可以一次性完成所有操作:
convert frame.png -background white -flatten \
im1.jpg -geometry +80+80 -composite \
im2.jpg -geometry +260+80 -composite \
im3.jpg -geometry +80+200 -composite \
im4.jpg -geometry +260+200 -composite result.png
其次,您可以尝试这样的操作 批处理 GraphicsMagick 并将中间步骤存储在内存中(MPR = Magick Program Register),这实际上是一个命名的 RAM 块:
{ echo convert frame.png -background white -flatten mpr:frame;
echo montage -geometry +20+20 -tile 2x2 im*.jpg mpr:images;
echo composite mpr:images -geometry +100+40 mpr:frame result.png; } | gm batch -prompt off
对于一个小照相亭应用有这样的问题:
我有 4 张图片,我想使用 蒙太奇 将它们拼贴在一起。结果使用透明 PNG 和 composite 得到一个 150px 的边框。但是因为 "frame" 比基本图像大,我必须添加一个额外的 convert 以在平铺图像周围添加人工 150px 边框。
这是功能性的,但速度很慢,而且看起来不是很优雅:
gm montage -geometry +20+20 -tile 2x2 /home/pi/dev/*.jpg miff:- | gm convert -border 150x150 miff:- miff:- | gm composite /home/pi/dev/rahmen.png miff:- /home/pi/dev/partyknipse.JPG
有什么方法可以优化它并加快这个过程吗?去掉 convert?
我想复合的 -geometry 参数可能有用,但到目前为止还没有完全理解它。
最后大致应该是这样的: red border is a png, the four grey boxes are the tiled image
不确定您的操作需要多长时间,或者您的期望是什么,但这里有一些想法...
假设我有 im1.jpg
到 m4.jpg
,这是 4 个小图像和一个较大的红色框架,它是一个 "hollow" PNG中间有个透明洞
首先,如果您要切换到 ImageMagick(而不是 GraphicsMagick),您可以一次性完成所有操作:
convert frame.png -background white -flatten \
im1.jpg -geometry +80+80 -composite \
im2.jpg -geometry +260+80 -composite \
im3.jpg -geometry +80+200 -composite \
im4.jpg -geometry +260+200 -composite result.png
其次,您可以尝试这样的操作 批处理 GraphicsMagick 并将中间步骤存储在内存中(MPR = Magick Program Register),这实际上是一个命名的 RAM 块:
{ echo convert frame.png -background white -flatten mpr:frame;
echo montage -geometry +20+20 -tile 2x2 im*.jpg mpr:images;
echo composite mpr:images -geometry +100+40 mpr:frame result.png; } | gm batch -prompt off