Класс InvertFilter использует LookupOp

Название книги: 
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ НА JAVA™ 2. КНИГА 1. ГРАФИКА, JAVABEANS, ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ.
Автор: 
Х.М. Дейтел, П.Дж. Дейтел, С.И. Сантри

Класс InvertFilter использует LookupOp — подкласс интерфейса Buffered- ImageOp для инвертирования цветов. Класс BufferedImageOp — базовый класс для большинства фильтров Java 2D — оперирует с двумя изображениями. Lookup- Op представляет собой массив,
индексированный значениями цветов исходных пикселей, и содержит значения цвета
целевых пикселей. В строках 21-22 создается новый объект класса LookupOp — invertFilter. Конструктор LookupOp принимает в качестве параметров объект ByteLookUрТаЫе, который содержит справочную таблицу — invertArray — и объект RenderingHints. Объекты RenderingHints описывают действия по оптимизации для
графического ядра. В этом приложении никакой оптимизации не требуется, поэтому
объект RenderingHints представляет собой null. В строке 25 вызывается метод filter класса LookupOp, который обрабатывает изображения image с помощью фильтра invertFilter и возвращает фильтрованное изображение.

Класс SharpenFilter {рис. 4.10) представляет собой фильтр, который
выделяет и повышает качество
контуров, которые
характеризуются различиями значений цветов соседних пикселов в изображении. Фильтр выделения контуров сначала
обнаруживает контуры, определяя различия в значениях соседних пикселей, а затем
улучшает их качество, увеличивая разницу между значениями пикселов. Класс SharpenFilter использует ConvolveOp — другой подкласс интерфейса Buffered- ImageOp — для создания фильтра выделения контуров.
ConvolveOp объединяет цвета исходного пиксела с
цветами окружающих его пикселов для определения цвета соответствующего целевого
пиксела. В строках 15-18 создается массив shar- penMatrix — эти значения используются в ConvolveOp. В строках 21-23 создается объект класса ConvolveOp, sharpenFilter, ему передаются три параметра (KerneI; целое число, указывающее на способ
обработки контура, и объект класса Rende- ringHints). Kernel — это двумерный массив, который задает,
как фильтр Convol- veOp должен объединять значения соседних
пикселов. Каждый фильтр Convolve- Op строится из объекта Kernel. Конструктор Kernel принимает в качестве параметров ширину,
высоту и массив значений. Используя эти параметры, можно построить двумерный
массив на основе значений массива. Это указывает фильтру, как корректировать
пикселы по периметру изображения. Значение EDGE_NO_OP (строка 23) указывает фильтру sharpenFilter копировать исходные пикселы по периметру
изображения image непосредственно в целевое изображение
без каких-либо изменений. В строке 26 вызывается метод filter класса ConvolveOp, который принимает в качестве параметра
изображение BufferedImage. Метод filter возвращает фильтрованное изображение.

Страница: 
150