Python 用魔杖用预定义的图案填充图像

Python 用魔杖用预定义的图案填充图像,python,imagemagick,composite,wand,Python,Imagemagick,Composite,Wand,我有一个图像(如:)和两个整数,它们表示最终的图像宽度和高度。根据Wand的文件: 这将导致背景透明的空图像。 现在的问题是:如何创建一个相同的空图像,但以遮罩图像作为背景图案 compositeCLI命令本身具有以下运算符: -在图像上下重复平铺合成操作 但是如何使用魔杖实现同样的效果呢?好吧,在查看ImageMagick的合成材料本身后,很明显,魔杖驱动的解决方案应该是这样的: with Image(width=x, height=y) as img: for x in xrange

我有一个图像(如:)和两个整数,它们表示最终的图像宽度和高度。根据Wand的文件:

这将导致背景透明的空图像。 现在的问题是:如何创建一个相同的空图像,但以遮罩图像作为背景图案

composite
CLI命令本身具有以下运算符:

-在图像上下重复平铺合成操作


但是如何使用魔杖实现同样的效果呢?

好吧,在查看ImageMagick的合成材料本身后,很明显,魔杖驱动的解决方案应该是这样的:

with Image(width=x, height=y) as img:
    for x in xrange(0, img.width, crop_mask_path.width):
        for y in xrange(0, img.height, crop_mask_path.height):
            img.composite_channel('default_channels', crop_mask_path, 'over', x, y)
    img.save(filename='patterned_image.png')

我认为构建标题迭代器是可行的。然而,另一种黑客方法是调用
tile:
协议,并允许内部ImageMagick方法处理复合。您将失去DIY继承的控制,但在优化的IM系统上获得一些性能

从wand.image导入图像
从wand.api导入库
使用Image()作为img:
#与tile:protocol所需的`-size 400x400'相同。
library.MagickSetOption(img.wand,'size','400x400')
#使用“tile:”协议作为文件名前缀。
read(filename='tile:rose.png')
保存(filename='tile\u rose.png')

with Image(width=x, height=y) as img:
    for x in xrange(0, img.width, crop_mask_path.width):
        for y in xrange(0, img.height, crop_mask_path.height):
            img.composite_channel('default_channels', crop_mask_path, 'over', x, y)
    img.save(filename='patterned_image.png')