Python: уроки, справочник и задачи

Pillow Python

Раздел: Модули и библиотеки Python · Обновлено 31.10.2026

Pillow Python - это мощная библиотека, предназначенная для работы с изображениями в языке программирования Python. Она предоставляет разнообразные возможности для обработки, создания и редактирования изображений, что делает ее незаменимым инструментом для разработчиков и дизайнеров.

Pillow Python
Фото: Håkan Dahlström from Malmö, Sweden / CC BY 2.0, Wikimedia Commons
Содержание статьи
  1. Зачем использовать Pillow Python?
  2. Как работать с Pillow Python?
    1. 1. Применение фильтров к изображениям
    2. 2. Работа с цветовыми пространствами
    3. 3. Объединение изображений
    4. 4. Работа с текстом и шрифтами
    5. 5. Обрезка и поворот изображений
    6. 6. Создание масок изображений
    7. 7. Изменение качества изображения
    8. 8. Преобразование формата изображения
    9. 9. Работа с альфа-каналом
    10. 10. Преобразование размера изображения
    11. 11. Наложение фильтров и настроек расцветки
    12. 12. Обработка пикселей изображения
    13. Вывод

Зачем использовать Pillow Python?

Благодаря простому и интуитивно понятному интерфейсу, Pillow Python идеально подходит как для начинающих, так и для опытных разработчиков. С ее помощью можно легко изменять размеры изображений, применять фильтры, наложить текст или графику, а также многое другое. Это делает ее отличным выбором для создания превосходных графических приложений.

Как работать с Pillow Python?

Установка Pillow Python осуществляется с помощью менеджера пакетов pip:

pip install pillow

После установки библиотеки, вы можете начать использовать ее функционал в своем проекте. Вот небольшой пример кода, демонстрирующий создание миниатюры изображения:

from PIL import Image
image = Image.open('example.jpg')
image.thumbnail((150, 150))
image.save('thumbnail.jpg')

1. Применение фильтров к изображениям

Pillow Python позволяет легко применять различные фильтры к изображениям, такие как размытие, увеличение резкости, сепия и другие. Это помогает создавать уникальные эффекты и улучшать качество изображений.

Пример использования фильтра размытия:

from PIL import Image, ImageFilter
image = Image.open('example.jpg')
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save('blurred_image.jpg')

2. Работа с цветовыми пространствами

Библиотека Pillow Python поддерживает работу с различными цветовыми пространствами, что позволяет конвертировать изображения из одного цветового пространства в другое. Это полезно при выполнении цветокоррекции или адаптации изображений под разные устройства.

Пример конвертации изображения в оттенки серого:

from PIL import Image
image = Image.open('example.jpg')
gray_image = image.convert('L')
gray_image.save('gray_image.jpg')

3. Объединение изображений

С помощью Pillow Python можно объединять несколько изображений в одно, создавая коллажи или комбинированные графические элементы.

Пример объединения двух изображений по вертикали:

from PIL import Image
image1 = Image.open('image1.jpg')
image2 = Image.open('image2.jpg')
combined_image = Image.new('RGB', (image1.width, image1.height + image2.height))
combined_image.paste(image1, (0, 0))
combined_image.paste(image2, (0, image1.height))
combined_image.save('combined_image.jpg')

4. Работа с текстом и шрифтами

Pillow Python также предоставляет возможность добавления текста на изображения, что позволяет создавать информативные и креативные графические элементы.

Пример добавления текста на изображение:

from PIL import Image, ImageDraw, ImageFont
image = Image.open('example.jpg')
draw = ImageDraw.Draw(image)
font = ImageFont.truetype('arial.ttf', 36)
draw.text((50, 50), "Пример текста", fill='black', font=font)
image.save('image_with_text.jpg')

5. Обрезка и поворот изображений

С помощью Pillow Python можно легко обрезать или повернуть изображение, что позволяет улучшить его композицию или исправить неправильное положение.

Пример обрезки и поворота изображения:

from PIL import Image
image = Image.open('example.jpg')
cropped_image = image.crop((100, 100, 300, 300))  # координаты области для обрезки
rotated_image = image.rotate(90)  # поворот на 90 градусов по часовой стрелке
cropped_image.save('cropped_image.jpg')
rotated_image.save('rotated_image.jpg')

6. Создание масок изображений

Pillow Python позволяет создавать маски изображений, которые можно использовать для обрезки изображений по определенной форме или для создания эффектов прозрачности.

Пример создания маски изображения:

from PIL import Image, ImageOps
image = Image.open('example.jpg')
mask = Image.new("L", image.size, 0)  # создание черно-белой маски того же размера
ImageDraw.Draw(mask).ellipse((50, 50, 200, 200), fill=255)  # рисование эллипса на маске
masked_image = ImageOps.fit(image, mask.size, centering=(0.5, 0.5))
masked_image.putalpha(mask)
masked_image.save('masked_image.jpg')

7. Изменение качества изображения

Pillow Python позволяет контролировать качество изображения при сохранении, что полезно при оптимизации размера файла и сохранении деталей изображения.

Пример изменения качества изображения при сохранении:

from PIL import Image
image = Image.open('example.jpg')
image.save('high_quality_image.jpg', quality=95)  # сохранение с высоким качеством (от 0 до 100)
image.save('low_quality_image.jpg', quality=50)   # сохранение с низким качеством

8. Преобразование формата изображения

С помощью Pillow Python можно легко преобразовывать формат изображения, например, конвертировать изображения в формат JPEG, PNG, GIF и другие форматы.

Пример конвертации формата изображения:

from PIL import Image
image = Image.open('example.png')
image.save('converted_image.jpg')  # конвертация в формат JPEG
image.save('converted_image.gif')  # конвертация в формат GIF

9. Работа с альфа-каналом

Библиотека Pillow Python поддерживает работу с альфа-каналом, что позволяет создавать изображения с прозрачностью или масками для сложных эффектов.

Пример работы с альфа-каналом:

from PIL import Image
image = Image.open('example.png')
image_with_alpha = image.convert('RGBA')
# Добавление прозрачного слоя
alpha = Image.new('L', image.size, 128)
image_with_alpha.putalpha(alpha)
image_with_alpha.save('image_with_alpha.png')

10. Преобразование размера изображения

Pillow Python позволяет легко изменять размер изображения, как уменьшать, так и увеличивать его, что полезно для подгонки изображений под определенные размеры или разрешения.

Пример изменения размера изображения:

from PIL import Image
image = Image.open('example.jpg')
resized_image = image.resize((800, 600))  # изменение размера на 800x600 пикселей
resized_image.save('resized_image.jpg')

11. Наложение фильтров и настроек расцветки

Pillow Python предоставляет возможность наложения различных фильтров и настроек цветовой коррекции на изображения, что помогает достичь определенного эффекта или стиля.

Пример наложения фильтра и настройки яркости на изображение:

from PIL import ImageEnhance, Image
image = Image.open('example.jpg')
# Увеличение яркости изображения
enhancer = ImageEnhance.Brightness(image)
bright_image = enhancer.enhance(1.5)  # увеличение яркости в 1.5 раза
bright_image.save('bright_image.jpg')

12. Обработка пикселей изображения

С использованием Pillow Python можно обращаться к отдельным пикселям изображения, изменять их значения и создавать различные кастомные эффекты.

Пример обработки пикселей изображения:

from PIL import Image
image = Image.open('example.jpg')
pixels = image.load()
for i in range(image.width):
    for j in range(image.height):
        r, g, b = pixels[i, j]
        # Пример обработки каждого пикселя (например, инвертирование цвета)
        pixels[i, j] = (255 - r, 255 - g, 255 - b)
image.save('processed_image.jpg')

Вывод

Используя указанные возможности Pillow Python, вы можете более гибко управлять обработкой и редактированием изображений, создавая уникальные эффекты и стили. Не ограничивайтесь базовыми операциями - экспериментируйте с различными функциями и методами библиотеки для достижения интересных результатов в работе с изображениями.