Работа с изображениями, разбор домашних заданий
Замечание: тема ?Графические форматы? актуальна для школьной информатики и, кажется, ЕГЭ.
- Задача цифрового представления цвета
- Цветовое пространство 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
?? тема повышенной сложности
? теоретическое задание
? тема для самостоятельного изучения