Различия между версиями 1 и 2
Версия 1 от 2013-03-16 00:26:56
Размер: 4757
Редактор: FrBrGeorge
Комментарий:
Версия 2 от 2013-03-22 15:08:32
Размер: 4795
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 24: Строка 24:
   * …плавно меняющегося цвета (подсказка: используйте цветовое пространство HSV)    * [[attachment:2013-03-15.HSVrects.py|…плавно меняющегося цвета (подсказка: используйте цветовое пространство HSV)]]

Работа с изображениями, разбор домашних заданий

Замечание: тема «Графические форматы» актуальна для школьной информатики и, кажется, ЕГЭ.

  • Задача цифрового представления цвета
  • Цветовое пространство RGB: происхождение, достоинство, недостатки
  • Проблема прозрачности и её решения с помощью «прозрачного цвета» или дополнительного уровня прозрачности (например альфа-канала)
  • Цветовые пространства HSV и CMY (CMYK) и их достоинства
  • Палитрованные (индексированные) растровые изображения
  • Формат XPM

  • {o} Использование GIMP для обработки растровых изображений

Домашнее задание

  1. {i} Прочитать в Википедии про цветовое пространство RGB и цветовое пространство CMYK (обратите внимание: авто статьи про CMYK явно полиграфист и тема прозрачности изображения, которую, собственно, даёт введение четырёх параметров вместо трёх, ему недоступна :) )

  2. {i} Прочитать в Википедии же про формат X Pixmap (XPM)

  3. Прочитать документацию по модулю Color и {*} про работу с палитрой в модуле Surface (ключевое слово «palette»).

  4. {*} Совет: программа работы с растровыми изображениями GIMP свободная и кроссплатформенная, доступна тут

  5. Написать программу
  6. Написать функции чтения из файла и записи в файл изображения в формате XPM (можно ограничиться одним символом на цвет) и поиздеваться с их помощью над изображениями. Финальное преобразование к формату, например, PNG можно сделать в PyGame так:

       1   img=pygame.image.load("файл.xpm")
       2   pygame.image.save(img,"файл.png")
    
    • сгенерировать пустой XPM-шаблон заданного размера для того, чтобы потом отредактироварть его в текстовом редакторе (можно и палитру заранее вбить)
    • поменять два цвета местами
    • затемнить картинку
    • повернуть изображение на 90°
    • перекосить изображение, сдвинув первый ряд пикселей на 1, второй — на 2 и т. п. пикселя вправо
    • {*} нарисовать окружность поверх картинки

  7. <!> Создать палитрованный Surface (для этого достаточно указать depth=8), задать палитру для него, нарисовать ряд прямоугольников всех цветов палитры и устроить «анимацию» путём циклического сдвига палитры (нулевой цвет становится первым, первый — вторым и т. п., последний — нулевым)

Условные обозначения

  • {o} — тема по Linux

  • <!> ­— тема повышенной сложности

  • {i} — теоретическое задание

  • {*} — тема для самостоятельного изучения


CategoryClass CategoryVmsh

LecturesVMSH/Python/2013-03-15 (последним исправлял пользователь FrBrGeorge 2013-03-22 15:08:32)