Найти в Дзене

Программирование на языке Python. Примеры работы с отдельными пикселями с использованием библиотеки pillow

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Графика на Python | programmer's notes (python and more) | Дзен

Работа с отдельными пикселями с помощью библиотеки pillow

Сегодня посмотрим как можно обрабатывать изображения на уровне отдельных пикселей с помощью библиотеки pillow.

Для попиксельной работы с изображением используется специальный массив (перегруженный оператор), который содержит кортежи трех цветов (RGB) для каждой точки. Точка (пиксель) определяется координатой (индексами массива). Левый верхний угол соответствует координатам 0, 0. Массив загружается последовательностью команд

im = Image.open('1.png')
px1 = im.load()

теперь к точке картинки можно обратиться через px1[i, j]. Далее, можно читать цвет пикселя из массива, либо записывать туда цвет. Изменения сохраняются при выполнении метода save().

Картинку - заготовку можно создать методом Image.new("RGB", (x, y), (0, 0, 0)). При этом создаётся графическая прямоугольная область размера x, y, с цветом (0, 0, 0) - в данном случае чёрным.

Замечание
Цвет RGB образуется смешиванием трех значений: красный, зелёный, синий, интенсивность которых определяется значениями от 0 до 255
.

Ниже представлена программа, которая просто создаёт копию исходной картинки (1.png -> 2.png).

Текст программы см. ниже
Текст программы см. ниже
primer196.py

Немного усложним задачу. Пусть дана фотография (рисунок 1)

Рисунок 1. Исходная фотография
Рисунок 1. Исходная фотография

Программа ниже берёт фотографию 1.png меняет местами местами левую и правую части и слегка меняет цвета у левой части.

Текст программы см. ниже
Текст программы см. ниже
primer197.py

Результат работы программы см. рисунок 2.

Рисунок 2. Результирующая картинка
Рисунок 2. Результирующая картинка

Ну, пока всё!

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

- Мне нравится ваша картина, но почему у человека две головы? - Ошибка программы
- Мне нравится ваша картина, но почему у человека две головы? - Ошибка программы