Python:Примеры/Добавление логотипа к изображениям в папке

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.


Добавление логотипа к изображениям в папке

В данном примере размеры изображений в текущем каталоге изменяются так, чтобы они вписывались в квадрат 300 на 300, а также добавляется в нижний правый угол изображение

Код

 1 import os
 2 from PIL import Image
 3 
 4 SQUARE_FIT_SIZE = 300
 5 LOGO_FILENAME = 'ВАШЕИЗОБРАЖЕНИЕ'
 6 
 7 logoIm = Image.open(LOGO_FILENAME)
 8 logoWidth, logoHeight = logoIm.size
 9 
10 os.makedirs('withLogo', exist_ok=True)
11 # Цикл по всем файлам в текущем рабочем каталоге
12 for filename in os.listdir('.'):
13     if not (filename.endswith('.png') or filename.endswith('.jpg')) or filename == LOGO_FILENAME:
14         continue # пропускаем файлы, которые не являются изображениями, а также файл логотипа
15 
16     im = Image.open(filename)
17     width, height = im.size
18 
19     # Проверяем необходимость изменения размеров изображения
20     if width > SQUARE_FIT_SIZE and height > SQUARE_FIT_SIZE:
21         # Расчет необходимых новых значений ширины и высоты
22         if width > height:
23             height = int((SQUARE_FIT_SIZE / width) * height)
24             width = SQUARE_FIT_SIZE
25         else:
26             width = int((SQUARE_FIT_SIZE / height) * width)
27             height = SQUARE_FIT_SIZE
28 
29         # Изменяем размеры изображений
30         print('Изменение размеров изображения %s...' % (filename))
31         im = im.resize((width, height))
32 
33     # Добавление логотипа
34     print('Добавление логотипа в изображение %s...' % (filename))
35     im.paste(logoIm, (width - logoWidth, height - logoHeight), logoIm)
36 
37     # Сохранение изменений
38     im.save(os.path.join('withLogo', filename))

См.также

Внешние ссылки