Tuesday, October 14, 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 Java2DTest57
{
public static void main(String args[])
throws Exception
{
/* 画像をライトで照らしたような画像の生成 */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
LightFilter lf = new LightFilter();
LightFilter.Light lt1 = new LightFilter.Light();
/* 方位 */
lt1.setAzimuth(90f/180f*ImageMath.PI);
/* 高さ */
lt1.setElevation(0.8f);
/* 強さ */
lt1.setIntensity(0.5f);
/* 位置X */
lt1.setCentreX(0.2f);
/* 位置Y */
lt1.setCentreY(0.5f);
/* ライトの色 */
lt1.setColor(0xff0000ff);
lf.addLight(lt1);

LightFilter.Light lt2 = new LightFilter.Light();
/* 方位 */
lt2.setAzimuth(90f/180f*ImageMath.PI);
/* 高さ */
lt2.setElevation(0.8f);
/* 強さ */
lt2.setIntensity(0.5f);
/* 位置X */
lt2.setCentreX(0.8f);
/* 位置Y */
lt2.setCentreY(0.5f);
/* ライトの色 */
lt2.setColor(0xffff0000);
lf.addLight(lt2);

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

元画像(sf2.jpg)


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