Wednesday, August 27, 2008

Java2DとJava Image Filters(pixels)を使用して水面の波紋のような効果を処理する

Jerry Huxtableさんが公開しているJava Image Filtersを使用して、画像に水面の波紋のような効果を処理するには、以下のコードを実行します。

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 Java2DTest19
{
public static void main(String args[])
throws Exception
{
/* 水面の波紋のような効果 */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
WaterFilter wf = new WaterFilter();
/* x座標を60%に設定 */
wf.setCentreX(0.6f);
/* y座標を60%に設定 */
wf.setCentreY(0.6f);
/* 半径を設定 */
wf.setRadius(100f);
/* 輪の太さ */
wf.setWavelength(20);
/* 振幅 */
wf.setAmplitude(4);

BufferedImage img2 = wf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample544a.jpg"));
}
}

元画像(sf2.jpg)


出力画像(sample544a.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: