Friday, August 22, 2008

Java2Dでコントラストを落とした画像を作成する

Java2Dでコントラストを落とした画像を作成するには、以下のコードを実行します。

import java.io.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.imageio.*;

public class Java2DTest16
{
public static void main(String args[])
throws Exception
{
/* コントラストを落とした画像を作成する */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));

WritableRaster wr = img.getRaster();
int buf[] = new int[wr.getNumDataElements()];
for(int ly=0;ly<wr.getHeight();ly++){
for(int lx=0;lx<wr.getWidth();lx++){
wr.getPixel(lx, ly, buf);
buf[0] = (byte)(buf[0]*0.2 + 256*0.4);
buf[1] = (byte)(buf[1]*0.2 + 256*0.4);
buf[2] = (byte)(buf[2]*0.2 + 256*0.4);
wr.setPixel(lx, ly, buf);
}
}

ImageIO.write(img, "jpg", new File("sample540a.jpg"));
}
}

元画像(sf2.jpg)


出力画像(sample540a.jpg)


環境
JDK6 Upadate6(JDK1.6.0_06)

No comments: