Памятки

Pillow (Рисование)

1. Установка библиотеки: Установите Pillow с помощью команды pip install pillow. Убедитесь, что у вас установлен Python и pip перед выполнением этой команды.
2. Импорт библиотеки: Импортируйте библиотеку Pillow в свой скрипт с помощью команды from PIL import Image, ImageDraw. Это позволит использовать функции и методы библиотеки.
3. Создание изображения: Создайте новое изображение с помощью функции Image.new(). Эта функция принимает несколько параметров:
- Режим изображения: определяет тип и количество каналов изображения. Например, 'RGB' означает, что изображение будет содержать три канала: красный, зеленый и синий.
- Размер изображения: указывается в виде кортежа (ширина, высота).
- Цвет фона: опциональный параметр, указывающий цвет фона изображения. По умолчанию используется прозрачный фон.
Пример: image = Image.new('RGB', (500, 500), 'white') создаст новое изображение размером 500x500 пикселей с белым фоном.
4. Получение объекта для рисования: Получите объект для рисования на изображении с помощью функции ImageDraw.Draw(). Передайте ей объект изображения, с которым вы хотите работать. Например, draw = ImageDraw.Draw(image).
5. Рисование примитивов: Используйте методы объекта draw для рисования примитивов на изображении. Некоторые из наиболее часто используемых методов включают:
- point(xy, fill): рисует точку на указанных координатах xy с указанным цветом fill.
- line(xy, fill, width): рисует линию соединяющую точки из списка xy с указанным цветом fill и толщиной width.
- rectangle(xy, outline, fill): рисует прямоугольник с верхним левым углом в координатах xy, указанным цветом outline для границы и указанным цветом fill для заливки.
- ellipse(xy, outline, fill): рисует эллипс с центром в координатах xy, указанным цветом outline для границы и указанным цветом fill для заливки.
Например, draw.line([(0, 0), (500, 500)], fill='black', width=2) нарисует линию от точки (0, 0) до точки (500, 500) на изображении.
6. Рисование текста: Используйте метод draw.text(xy, text, fill, font) для рисования текста на изображении.
- xy: координаты верхнего левого угла текста.
- text: сам текст, который нужно нарисовать.
- fill: цвет текста.
- font: шрифт текста. Можно использовать объект ImageFont для выбора шрифта и размера.
Например, draw.text((100, 100), 'Hello, Pillow!', fill='black') напишет текст 'Hello, Pillow!' на изображении с черным цветом.
7. Сохранение изображения: Сохраните изображение с помощью метода image.save(). Укажите путь и имя файла, в котором хотите сохранить изображение. Например, image.save('output.png') сохранит изображение в файл с именем 'output.png'.
8. Отображение изображения: Если вы хотите отобразить изображение на экране, используйте метод image.show(). Например, image.show() откроет изображение в программе просмотра изображений по умолчанию на вашей операционной системе.
9. Дополнительные возможности: Pillow предоставляет множество других функций и методов для манипуляции с изображениями. Например, вы можете изменить размер изображения с помощью метода image.resize(), изменить цветовую палитру с помощью метода image.convert(), наложить фильтр с помощью метода image.filter() и т. д. Подробную информацию об этих и других функциях можно найти в документации Pillow: https://python-scripts.com/pillow.
from PIL import Image, ImageDraw, ImageFont

# Создание нового изображения
image = Image.new('RGB', (500, 500), 'white')

# Получение объекта для рисования
draw = ImageDraw.Draw(image)

# Рисование примитивов

# Нарисовать точку
draw.point((250, 250), fill='black')

# Нарисовать линию
draw.line([(0, 0), (500, 500)], fill='black', width=2)

# Нарисовать прямоугольник
draw.rectangle([(100, 100), (400, 400)], outline='black', fill='red')

# Нарисовать эллипс (круг)
draw.ellipse([(200, 200), (300, 400)], outline='black', fill='blue')

# Рисование текста

# Загрузка шрифта
font = ImageFont.truetype('arial.ttf', size=24)

# Нарисовать текст
draw.text((50, 50), 'Hello, Pillow!', fill='black', font=font)

# Сохранение изображения
image.save('output.png')

# Отображение изображения
image.show()

В коде мы создаем новое изображение размером 500x500 пикселей с белым фоном. Затем мы получаем объект для рисования и используем функции рисования примитивов (фигур). Мы также загружаем шрифт и используем метод text() для рисования текста на изображении. Наконец, мы сохраняем изображение в файл 'output.png' и отображаем его на экране (сохранять для отображения не обязательно).