Алгоритмы формирования изображения
та, причем степень почернения участка будет зависеть от соотношения между количеством белых и черных пикселей в трафарете. При размере трафарета 4x4 теоретически существует 216 разных вариантов трафаретов, но все эти варианты способны воспроизвести только 17 градаций серого, что соответствует изменению количества черных пикселей в группе от О (абсолютно белый цвет) до 16 (абсолютно черный цвет). Существует множество вариантов формирования полутонового изображения с помощью подобных трафаретов. Самый простой из них - выбрать 17 из 216 вариантов распределения черных и белых пикселей на матрице с размерами 4x4, причем каждый отобранный вариант должен иметь отличное количество зачерненных пикселей и использовать отобранные трафареты для воспроизведения одной из 17 возможных градаций серого, независимо от характера формируемого изображения. За это придется заплатить снижением пространственного разрешения в 4 раза.
Но такой простой алгоритм может привести к образованию на изображении муара. Чаще всего это происходит, если в изображении имеются фрагменты с регулярной структурой. Более сложные алгоритмы используют случайный выбор среди трафаретов с одинаковой характеристикой почернения, что позволяет избавиться от появления муара на изображении (см. упр. 7.26).
Такие технологии используются и при формировании цветных изображений в устройствах печати, в частности в цветных струйных принтерах. Отдельная точка оттиска может представлять собой только пятнышко какого-либо полного цвета, и промежуточные оттенки воспроизводятся за счет изменения плотности расположения этих цветовых пятнышек. В графической системе OpenGL поддерживается такой способ формирования градаций серого или оттенков цветов, для чего, следует вызвать функцию glEnable( ), передав ей в качестве аргумента константу GL DITHER.
Рис. 7.66. Трафареты для представления в изображении градаций серого цвета
7.13. Резюме В этой главе представлен обзор методов реализации функций графической системы, включая примеры некоторых алгоритмов. Независимо от характеристик конкретных средств реализации (программных или аппаратных), существует ряд задач, которые необходимо решать в системе с любой организацией. К ним относятся задачи геометрических преобразований, отсечения и растрового преобразования. Мы рассмотрели, как при реализации этих задач взаимодействуют программные, аппаратные средства и функции API графической системы.