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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Python/Панель перехода}} {{Myagkij-редактор}} =Добавление логотипа к изображениям в папке= В да…»)
 
Нет описания правки
 
(не показана 1 промежуточная версия 1 участника)
Строка 9: Строка 9:
=Код=
=Код=


<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
import os
import os
from PIL import Image
from PIL import Image
Строка 57: Строка 57:


<references />
<references />
 
{{Навигационная таблица/Python}}
{{Навигационная таблица/Телепорт}}
{{SEO
{{SEO
|Заголовок статьи=Python:Примеры - Добавление логотипа к изображениям в папке / Онлайн справочник - wikihandbk.com
|Заголовок статьи=Python:Примеры - Добавление логотипа к изображениям в папке / Онлайн справочник - wikihandbk.com

Текущая версия от 18:21, 14 мая 2023

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


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

В данном примере размеры изображений в текущем каталоге изменяются так, чтобы они вписывались в квадрат 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))

См.также

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