Работа с изображениями, разбор домашних заданий
Замечание: тема «Графические форматы» актуальна для школьной информатики и, кажется, ЕГЭ.
- Задача цифрового представления цвета
- Цветовое пространство RGB: происхождение, достоинство, недостатки
- Проблема прозрачности и её решения с помощью «прозрачного цвета» или дополнительного уровня прозрачности (например альфа-канала)
- Цветовые пространства HSV и CMY (CMYK) и их достоинства
- Палитрованные (индексированные) растровые изображения
Формат XPM
Использование GIMP для обработки растровых изображений
Домашнее задание
Прочитать в Википедии про цветовое пространство RGB и цветовое пространство CMYK (обратите внимание: авто статьи про CMYK явно полиграфист и тема прозрачности изображения, которую, собственно, даёт введение четырёх параметров вместо трёх, ему недоступна )
Прочитать в Википедии же про формат X Pixmap (XPM)
Прочитать документацию по модулю Color и про работу с палитрой в модуле Surface (ключевое слово «palette»).
Совет: программа работы с растровыми изображениями GIMP свободная и кроссплатформенная, доступна тут
- Написать программу
- бесконечно рисующую случайные прямоугольники случайного цвета в случайных местах экрана
…плавно меняющегося цвета (подсказка: используйте цветовое пространство HSV)
Написать функции чтения из файла и записи в файл изображения в формате XPM (можно ограничиться одним символом на цвет) и поиздеваться с их помощью над изображениями. Финальное преобразование к формату, например, PNG можно сделать в PyGame так:
- сгенерировать пустой XPM-шаблон заданного размера для того, чтобы потом отредактироварть его в текстовом редакторе (можно и палитру заранее вбить)
- поменять два цвета местами
- затемнить картинку
- повернуть изображение на 90°
- перекосить изображение, сдвинув первый ряд пикселей на 1, второй — на 2 и т. п. пикселя вправо
нарисовать окружность поверх картинки
Создать палитрованный Surface (для этого достаточно указать depth=8), задать палитру для него, нарисовать ряд прямоугольников всех цветов палитры и устроить «анимацию» путём циклического сдвига палитры (нулевой цвет становится первым, первый — вторым и т. п., последний — нулевым)
Условные обозначения
— тема по Linux
— тема повышенной сложности
— теоретическое задание
— тема для самостоятельного изучения