area
, установленное в .paste()
, - это позиция вставки (слева, сверху, справа, снизу).Поскольку вы устанавливаете влево и сверху на ноль, воздушный шар вставляется в верхний левый.
Чтобы вставить его в нижнюю середину, вы должны рассчитать правильные значения для позиции:
Пространство сверху - это высота фона минус высота вставленного изображения, т. Е. 425 - (298 + i)
, или просто 425 - 298 - i
или 127 - i
Пространство сбоку составляет половину от размераtop.
Это дает вам этот код:
from PIL import Image
i = 0
while(i < 128):
balloon = Image.open("NEAREST" + str(i) + ".jpg")
canvas = Image.open("blank.jpg")
space = 127 - i
area = (int(space/2), space, int(space/2) + 298 + i, 425)
canvas.paste(balloon, area)
canvas.save("PASTE"+str(i)+".jpg")
i = i + 1
Обратите внимание, что это жестко запрограммировано в вашей ситуации, то есть работает, только если фон имеет размер 425x425 пикселей.В противном случае вам придется рассчитывать его динамически в соответствии с размером изображения.