Saturday, October 04, 2008

Java2DとJava Image Filters(pixels)を使用して鏡面画像を作成する

Java2DとJava Image Filters(pixels)を使用して鏡面画像を作成するには、以下のコードを実行します。

import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;
import com.jhlabs.image.*;

public class Java2DTest47
{
public static void main(String args[])
throws Exception
{
/* 鏡面画像 */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage img2 = new BufferedImage(
200, 400, BufferedImage.TYPE_INT_ARGB_PRE
);
Graphics2D gr = img2.createGraphics();
gr.drawImage(img,0,0,null);
gr.dispose();

MirrorFilter mf = new MirrorFilter();
/* 角度 */
// not implemented?
//mf.setAngle(0f/180f*ImageMath.PI);
/* 距離 */
// not implemented?
//mf.setDistance(0);
/* 回転 */
// not implemented?
//mf.setRotation(0f/180f*ImageMath.PI);
/* gap */
mf.setGap(0.01f);
/* 透明度 */
mf.setOpacity(0.6f);
/* 中央Y */
mf.setCentreY(0.5f);

BufferedImage img3 = mf.filter(img2, null);
BufferedImage img4 = new BufferedImage(
200, 400, BufferedImage.TYPE_INT_RGB
);
Graphics2D gr2 = img4.createGraphics();
gr2.drawImage(img3,0,0,null);
gr2.dispose();

ImageIO.write(img4, "jpg", new File("sample578a.jpg"));
}
}

元画像(sf.jpg)


出力画像(sample578a.jpg)



関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html

Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/

java.netでのプロジェクトページ
https://pixels.dev.java.net/

No comments: