Изменение составляющих цвета

Чтобы изменить отдельные составляющие цвета, надо прежде всего посмотреть тип хранения элементов в Bufferedimage, по умолчанию это TYPE_INT_RGB. Здесь три составляющие — красная, зеленая и синяя. Каждая составляющая цвета занимает один байт, все они хранятся в одном числе типа int. Затем надо составить таблицу новых значений составляющих. В листинге 15.7 это двумерный массив samples. Потом заполняем данный массив нужными значениями составляющих каждого цвета. В листинге 15.7 задается ярко-красный цвет рисования и белый цвет фона. По полученной таблице создаем экземпляр класса ByteLookupTabie, который свяжет эту таблицу с буфером данных. Этот экземпляр используем для создания объекта класса LookupOp. Наконец, применяем метод filter () этого класса.

В листинге 15.7 приведен только фрагмент программы. Для получения полной программы его надо вставить в листинг 15.6 вместо выделенного в нем фрагмента. Логотип Java будет нарисован ярко-красным цветом.

Листинг 15.7. Изменение составляющих цвета

//————————————— Вставить в листинг 15.6 ————————

byte samples[][] = new byte[3][256]; 

for (int j = 0; j < 255; j++){

samples[0][j] = (byte)(255);     // Красная составляющая 

samples[1][j] = (byte)(0);       // Зеленая составляющая 

samples[2][j] = (byte)(0);       // Синяя составляющая 

}

samples[0][255] = (byte) (255);  // Цвет фона — белый

samples[1][255] = (byte) (255) ;

samples [2] [255] = (bybej (255) ;

ByteLookupTabie blut=new ByteLookupTabie(0, samples); 

LookupOp lop = new LookupOp(blut, null); 

lop.filter(bi, bimg); 

//————————————— Конец вставки ———————————————-

 

Сайт создан в системе uCoz