Различные технологии, рассмотренные в данной главе, направленные на формирование или улучшение изображения, появляющегося на растровом дисплее, работают иа уровне пикселов. Все эти технологии стараются или использовать позитивные стороны дискретности растра, или нейтрализовать ее негативные эффекты. В силу того, что изображение содержит огромное количество пикселов, эффективность каждого алгоритма играет неоценимую роль.

10.11. Тематические задания Тематическое задание 10.1. Чтение и просмотр BMP-файлов изображений Напишите приложение, которое разрабатывает детали методов класса RGBpixmap: drawO, readO, соруО, readBmpFileO, writeBmpFileO и позволяет пользователю читать изображение, записанное в ВМР-файле, и просматривать это изображение на дисплее средствами OpenGL. Кроме того, предоставьте пользователю возможность задать с помощью мыши прямоугольник иа дисплее, с тем чтобы после этой операции часть пиксельной карты внутри этого прямоугольника записывалась в BMP-файл. Если же пользователь нажмет клавишу «f», то отображаемая пиксельная карта должна «отразиться» относительно своей горизонтальной средней линии, после чего изображение должно стать перевернутым. Нажатие клавиши «v» должно отражать изображение относительно его вертикальной средней линии.

Средства для растровой графики

Тематическое задание 10.2. Растворение одной пиксельной карты в другой с помощью OpenGL

Уровень сложности И.

Как рассматривалось в разделе 10.2 «Управление пиксельными картами», нетрудно заставить одно изображение раствориться в другом. На рис. 10.10 показан пример такого растворения. Если два изображения записаны в пиксельных картах Л и В, то нам требуется только нарисовать взвешенное среднее Л(1 - с) + Bt этих карт для последовательности значений t.

В данном тематическом задании для формирования средних взвешенных изображений используется существующая в OpenGL возможность альфа-смешивания (alpha-blending) изображений и метод blendO, приведенный в листинге 10.3. Проделайте следующие действия:


⇐ Предыдущая| |Следующая ⇒