PIL: вставка изображения в другое изображение, вычисление положения

1

Я пытаюсь вставить одно изображение в antoher, но не могу вычислить позиции, отличные от левого верхнего угла. Как вычислить положение для верхнего угла верхнего и нижнего угла и левого нижнего угла?

from io import BytesIO
from PIL import Image


def add_watermark():
    original_image = Image.open('test1.jpg')
    watermark = Image.open('watermark.png')

    watermark_width, watermark_height = watermark.size

    x, y = original_image.size
    margin = 40

    # left top
    position = ((0 + margin, 0 + margin))

    image_with_watermark = Image.new('RGBA', (x, y), (0, 0, 0, 0))
    image_with_watermark.paste(original_image, (0, 0))
    image_with_watermark.paste(watermark, position, mask=watermark)
    image_with_watermark.show()
    buffer = BytesIO()
    image_with_watermark.save(fp=buffer, format='jpeg')


add_watermark()
Теги:
python-imaging-library

1 ответ

2
Лучший ответ

Попробуйте следующее для левого верхнего, верхнего правого, нижнего левого и нижнего правого:

position_tl = (0 + margin, 0 + margin)
position_tr = (x - margin - watermark_width, 0 + margin)
position_bl = (0 + margin, y - margin - watermark_height)
position_br = (x - margin - watermark_width, y - margin - watermark_height)
  • 0
    ValueError: изображения не совпадают в этой строке image_with_watermark.paste(watermark, position, mask=watermark)
  • 0
    Не используйте аргумент mask . Посмотри на мою вторую замену.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню