以下のコードでは、青色と赤色のライトの位置をずらして、画像を照らしています。
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:
Post a Comment