您可以使用 Wand 从同一图像裁剪多个区域吗?

Can you crop multiple areas from the same image with Wand?

我有两张图片,想从第一张图片中提取多个区域并将它们覆盖在第二张图片上。有没有一种方法可以在不使用 Python Wand 再次加载第一张图像的情况下从图像中裁剪多个区域?类似于 ImageMagick 中 +repage 的反义词。

bg_img = Image(filename = 'second_image.jpg')

fg_img = Image(filename = 'first_image.jpg')
left = 50
top = 600
width = 30
height = 30
fg_img.crop(left, top, width=width, height=height)

bg_img.composite(fg_img, left, top)

fg_img = Image(filename = 'first_image.jpg')
left = 500
top = 600
width = 100
height = 30
fg_img.crop(left, top, width=width, height=height)

bg_img.composite(fg_img, left, top)

bg_img.save(filename='second_image_plus_overlays.png')

您可以在 Python Wand 中通过克隆输入来做到这一点。

输入:

from wand.image import Image
from wand.display import display

with Image(filename='lena.jpg') as img:
    with img.clone() as copy1:
        copy1.crop(left=50, top=100, width=100, height=50)
        copy1.save(filename='lena_crop1.jpg')
        display(copy1)
    with img.clone() as copy2:
        copy2.crop(left=100, top=50, width=50, height=100)
        copy2.save(filename='lena_crop2.jpg')
        display(copy2)

结果 1:

结果 2: