提问人:tobidude 提问时间:8/23/2023 更新时间:8/27/2023 访问量:39
ImageMagick:如何重复使用单个图像进行多次叠加
ImageMagick: How do I reuse one single image to overlay it multiple times
问:
我想使用命令行在 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每次都从磁盘重新加载覆盖.png,这似乎对性能非常不利。
有没有更好的方法?例如,带有“-clone”的东西?
任何帮助都非常感谢!
答:
2赞
GeeMack
8/23/2023
#1
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”即可将其带回命令中。
评论
magick-script