В сегодняшнем посте я продолжу тему обработки изображений с помощью библиотеки PIL.
О самой библиотеке я рассказал в предыдущем посте. А сейчас я расскажу вам, как накладывать изображения друг на друга. Этот урок будет очень полезен, если вам, например, нужно наложить водяной знак с помощью Python.
Склеить две картинки в Python Imaging Library не представляет особого труда и хотя это не единственный инструмент который справляется с данной задачи, я, все таки, предпочитаю использовать именно его.
Об особенностях установки данной библиотеке и о базовых возможностях я уже упоминал, так что сосредоточимся непосредственно на задаче объединения двух изображений.
Необходимость наложить одно изображение на другое чаще всего необходимо для создания надписи или водяного знака.
Для примера я выбрал задачу наложения водяного знака.
В интернете существует масса сервисов для наложения водяного знака, но мы можем сделать это и сами, причем для огромного количества изображений за считаные секунды.
Итак, у нас имеется исходное изображение:
И вотермарк:
Теперь приступим к коду:
from PIL import Image
img = Image.open('image.png')
watermark = Image.open('watermark.png')
img.paste(watermark, (450, 230), watermark)
img.save("img_with_watermark.png")
Для накладывания водяного знака используется атрибут paste. Первым параметр - путь к изображению, которое будет накладываться, второй - координаты для наложения на первое изображение, третий - альфаканал (используется для наложения). Координаты вычисляем из того, в какое место хотим установить водяной знак с учетом размеров самой вотермарк. В моем случае это нижний правый угол.
Итоговое изображение:
Для того чтобы наложить водяной знак или какой то другой рисунок на больше количество изображений слегка изменим код:
from PIL import Image
img_list = ['image1.png', image2.png, image3.png, image4.png]
for image in img_list:
img = Image.open(image)
watermark = Image.open('watermark.png')
img.paste(watermark, (450, 230), watermark)
img.save(image)
Таким образом мы наложим водяной знак на каждое изображение в списке img_list.
На этом наш разговор об обработки изображений не оканчивается. Я буду продолжать знакомить вас с полезными возможностями библиотеки PIL. Эти посты можно найти под тэгом PIL