Иллюстрированный самоучитель по 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;
}
}