Иллюстрированный самоучитель по Java

       

Как изменить цвет изображения


В листинге 15.3 меняются цвета каждого пиксела изображения. Это достигается просто сдвигом rgb » 1 содержимого пиксела на один бит вправо в методе fiiterRGB (). При этом усиливается красная составляющая цвета. Метод f iiterRGB о переопределен в расширении coiorFilter класса

RGBImageFilter.

Листинг 15.3.

Изменение цвета всех пикселов ;

import j ava.awt.*;

import java.awt.event.*;

import java.awt.image.*;

class RGBTest extends Frame{ 

private Image img, newimg; 

RGBTest(String s){

super(s);

img = getToolkit().getlmage("javalogo52x88.gif");



RGBImageFilter rgb = new CoiorFilter();

newimg = createlmage(new FilteredlmageSource(img.getSource(), rgb));

setSize(400, 350);

setVisible(true); } public void paint(Graphics g){

g.drawlmage(img, 10, 40, this);

g.drawlmage(newimg, 150, 40, this); }

public static void main(String[] args){

Frame f= new RGBTest(" Изменение цвета"); 

f.addWindowListener(new WindowAdapter(){

public void wlndowClosing(WindowEvent ev){

System.exit(0); 

}

}); 

}

class CoiorFilter extends RGBImageFilter{ CoiorFilter(){

canFilterlndexColorModel = true; } 

public int fiiterRGB(int x, int y, int rgb){

return rgb » 1; 

}



Содержание раздела