ImageMagick:如何重复使用一张图像来多次叠加

问题描述 投票:0回答:1

我想使用命令行在 ImageMagick 中将同一图像多次(最多数千次)叠加在不同的随机位置。

convert -size 800x800 xc:transparent ^
-draw "image over 5,10 0,0 'overlay.png'" ^
-draw "image over 58,23 0,0 'overlay.png'" ^
-draw "image over 701,500 0,0 'overlay.png'" ^
....
PNG64:output.png

convert -size 800x800 xc:transparent ^
overlay.png -geometry +0+200 -composite ^
overlay.png -geometry +15+512 -composite ^
overlay.png -geometry +699+20 -composite ^
....
PNG64:output.png

工作得很好!

但是我有一种感觉,ImageMagick 每次都会从磁盘重新加载overlay.png,这对性能来说似乎非常糟糕。

有更好的方法吗?例如,带有“-clone”的东西?

非常感谢任何帮助!

command-line imagemagick overlay imagick
1个回答
0
投票

ImageMagick 可以将图像读入命令并将其存储在内存寄存器中,以便在命令运行期间从内存中访问。这是一个简单的例子...

convert overlay.png -write mpr:img0 +delete ^
    -size 800x800 xc:transparent ^
    -draw "image over 5,10 0,0 mpr:img0" ^
    -draw "image over 58,23 0,0 mpr:img0" ^
    -draw "image over 701,500 0,0 mpr:img0" ^
....
PNG64:output.png

将覆盖图像读入命令并将其写入名为“img0”的内存寄存器(您可以将其命名为任何您想要的名称),然后将其从活动命令中删除。只要需要,只需引用其名称“mpr:img0”即可将其带回到命令中。

© www.soinside.com 2019 - 2024. All rights reserved.