如何使用Python PIL粘贴到特定位置?

时间:2019-07-11 06:26:16

标签: python python-imaging-library

我正在尝试创建一个程序,该程序以128个气球的图像进行拍摄,这些图像的大小以固定的变化递增,然后将每个图像粘贴到具有一定大小的固定图像的不同副本上,该图像如下所示,并且还有代码,到目前为止,我所做的代码是将它们粘贴在图片的左上角,然后我将要粘贴的每张图片都粘贴在副本下边框的中间,所以总的来说问题就在于创建区域var了: the background the balloon picture

from PIL import Image

i = 0

while(i < 128):
    balloon = Image.open("NEAREST" + str(i) + ".jpg")
    canvas = Image.open("blank.jpg")

    area = (0 ,0,298+i,298+i)
    canvas.paste(balloon, area)
    canvas.save("PASTE"+str(i)+".jpg")
    i = i + 1

1 个答案:

答案 0 :(得分:1)

您在Notification Hub中设置的area是粘贴的位置(左,上,右,下)。由于您将“左”和“上”设置为零,因此气球被粘贴在左上角。

要将其粘贴到底部中间,您必须计算该位置的正确值:

顶部的空间是背景的高度减去粘贴的图像的高度,即.paste(),或者仅仅是425 - (298 + i)425 - 298 - i

侧面的空间是顶部的一半。

这将为您提供以下代码:

127 - i

请注意,这是根据您的情况进行硬编码的,即,仅当背景为425x425像素时才有效。否则,您将不得不根据图像大小动态计算它。