Python:Примеры/Добавление логотипа к изображениям в папке
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Проверка/Оформление/Редактирование: Мякишев Е.А.
Добавление логотипа к изображениям в папке
В данном примере размеры изображений в текущем каталоге изменяются так, чтобы они вписывались в квадрат 300 на 300, а также добавляется в нижний правый угол изображение
Код
import os
from PIL import Image
SQUARE_FIT_SIZE = 300
LOGO_FILENAME = 'ВАШЕИЗОБРАЖЕНИЕ'
logoIm = Image.open(LOGO_FILENAME)
logoWidth, logoHeight = logoIm.size
os.makedirs('withLogo', exist_ok=True)
# Цикл по всем файлам в текущем рабочем каталоге
for filename in os.listdir('.'):
if not (filename.endswith('.png') or filename.endswith('.jpg')) or filename == LOGO_FILENAME:
continue # пропускаем файлы, которые не являются изображениями, а также файл логотипа
im = Image.open(filename)
width, height = im.size
# Проверяем необходимость изменения размеров изображения
if width > SQUARE_FIT_SIZE and height > SQUARE_FIT_SIZE:
# Расчет необходимых новых значений ширины и высоты
if width > height:
height = int((SQUARE_FIT_SIZE / width) * height)
width = SQUARE_FIT_SIZE
else:
width = int((SQUARE_FIT_SIZE / height) * width)
height = SQUARE_FIT_SIZE
# Изменяем размеры изображений
print('Изменение размеров изображения %s...' % (filename))
im = im.resize((width, height))
# Добавление логотипа
print('Добавление логотипа в изображение %s...' % (filename))
im.paste(logoIm, (width - logoWidth, height - logoHeight), logoIm)
# Сохранение изменений
im.save(os.path.join('withLogo', filename))
См.также
Внешние ссылки