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))

См.также

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