Saturday, January 23, 2010

ProcessingとJava Image Filters(pixels)を使用して万華鏡のような画像を作成する

ProcessingとJava Image Filters(pixels)を使用して万華鏡のような画像を作成するには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
PImage img = loadImage("sf2.jpg");
size(img.width, img.height);
// 万華鏡のような画像を生成する
KaleidoscopeFilter kf = new KaleidoscopeFilter();
// 面数
kf.setSides(6);
// 角度1
kf.setAngle(20f/180f*ImageMath.PI);
// 角度2
kf.setAngle2(50f/180f*ImageMath.PI);
// 中心X
kf.setCentreX(0.5f);
// 中心Y
kf.setCentreY(0.5f);
// 半径
kf.setRadius(100);

PImage img2 = new PImage(kf.filter((BufferedImage)img.getImage(), null));
image(img2, 0, 0);
// ファイル保存
save("sample1469a.png");


元画像(sf2.jpg):dataサブディレクトリに配置か、Add Filesで追加。


出力画像(sample1469a.png)
ProcessingとJava Image Filters(pixels)を使用して作成した万華鏡のような画像

動作環境
Processing 1.0.7

Thursday, January 21, 2010

ProcessingとJava Image Filters(pixels)を使用して影付き文字列を描画する

ProcessingとJava Image Filters(pixels)を使用して影付き文字列を描画するには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
PImage img = loadImage("SF.JPG");
size(img.width, img.height);
image(img, 0, 0);

// オフスクリーンバッファ
PGraphics gr = createGraphics(200, 200, JAVA2D);
gr.colorMode(RGB, 255, 255, 255, 255);
gr.beginDraw();
// 背景色
gr.background(#000000,0);
// 塗りつぶし色
gr.fill(#ffffff);
// フォントを変換
PFont font = createFont("MS Gothic",48,true);
// フォントを設定
gr.textFont(font);
// 文字
gr.text("さんぷる",5,110);
gr.endDraw();

ShadowFilter sf = new ShadowFilter();
// 半径
sf.setRadius(7f);
// 透明度
sf.setOpacity(0.9f);
// 角度
sf.setAngle(300f/180f*ImageMath.PI);
// 距離
sf.setDistance(5f);
// 影の色
sf.setShadowColor(0xff202020);
// 影のマージン
sf.setAddMargins(false);
// 影のみにするか
sf.setShadowOnly(false);

img.blend(new PImage(sf.filter((BufferedImage)gr.getImage(), null)),
0, 0, img.width, img.height,
0, 0, img.width, img.height, BLEND);
image(img, 0, 0);

// ファイル保存
save("sample1467a.png");


元画像(sf.jpg):dataサブディレクトリに配置か、Add Filesで追加。


出力画像(sample1467a.png)
ProcessingとJava Image Filters(pixels)を使用してドロップシャドウつきの文字列を描画した画像

動作環境
Processing 1.0.7

Wednesday, January 20, 2010

ProcessingとJava Image Filters(pixels)を使用して画像をサーモグラフィ風にする

ProcessingとJava Image Filters(pixels)を使用して画像をサーモグラフィ風にするには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
PImage img = loadImage("SF.JPG");
size(img.width, img.height);
// カラーマップを作成
ArrayColormap ac = new ArrayColormap();
ac.setColorRange(0, 50, Color.BLACK.getRGB(), Color.BLUE.getRGB());
ac.setColorRange(51, 101, Color.BLUE.getRGB(), Color.GREEN.getRGB());
ac.setColorRange(102, 152, Color.GREEN.getRGB(), Color.YELLOW.getRGB());
ac.setColorRange(153, 204, Color.YELLOW.getRGB(), Color.RED.getRGB());
ac.setColorRange(205, 255, Color.RED.getRGB(), Color.WHITE.getRGB());
// サーモグラフィ風に変換
LookupFilter lf = new LookupFilter(ac);

PImage img2 = new PImage(lf.filter((BufferedImage)img.getImage(), null));
image(img2, 0, 0);
// ファイル保存
save("sample1466a.png");


元画像(sf.jpg):dataサブディレクトリに配置か、Add Filesで追加。


出力画像(sample1466a.png)
ProcessingとJava Image Filters(pixels)を使用してサーモグラフィ風に変換した画像

動作環境
Processing 1.0.7

Tuesday, January 19, 2010

ProcessingとJava Image Filters(pixels)を使用して炎の画像を生成する

ProcessingとJava Image Filters(pixels)を使用して炎の画像を生成するには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
PImage img = new PImage(200, 200, ARGB);
size(img.width, img.height);
// 炎のような画像を生成
FBMFilter fbmf = new FBMFilter();
// effect量
fbmf.setAmount(1f);
// 操作タイプ
fbmf.setOperation(FBMFilter.NOISE);
// スケール
fbmf.setScale(32);
// 引き伸ばし率
fbmf.setStretch(1f);
// 角度
fbmf.setAngle(10f/180f*ImageMath.PI);

// カラーマップを作成&設定
ArrayColormap ac = new ArrayColormap();
ac.setColorRange(0, 100, 0x00000000, 0xffff8040);
ac.setColorRange(101, 200, 0xffff8040, 0xffffff60);
ac.setColorRange(201, 255, 0xffffff60, 0xffffffe0);
fbmf.setColormap(ac);

PImage img2 = new PImage(fbmf.filter((BufferedImage)img.getImage(), null));
image(img2, 0, 0);
// ファイル保存
save("sample1465a.png");


出力画像(sample1465a.png)
ProcessingとJava Image Filters(pixels)を使用して作成した炎の画像

動作環境
Processing 1.0.7

Monday, January 18, 2010

ProcessingとJava Image Filters(pixels)を使用して放射ブラーをかける

ProcessingとJava Image Filters(pixels)を使用して放射ブラーをかけるには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
PImage img = loadImage("sf2.jpg");
size(img.width, img.height);
// 放射ブラーをかける
MotionBlurFilter mbf = new MotionBlurFilter();
// 角度
mbf.setAngle(0f/180f*ImageMath.PI);
// 距離
mbf.setDistance(1f);
// 回転
mbf.setRotation(0.03f);
// ズーム
mbf.setZoom(0.1f);
mbf.setWrapEdges(false);

PImage img2 = new PImage(mbf.filter((BufferedImage)img.getImage(), null));
image(img2, 0, 0);
// ファイル保存
save("sample1464a.png");


元画像(sf2.jpg):dataサブディレクトリに配置か、Add Filesで追加。


出力画像(sample1464a.png)
ProcessingとJava Image Filters(pixels)を使用して放射ブラーをかけた画像

動作環境
Processing 1.0.7

Sunday, January 17, 2010

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

ProcessingとJava Image Filters(pixels)を使用して鏡面画像を作成するには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
PImage img = loadImage("SF.JPG");
BufferedImage bi = new BufferedImage(
img.width, img.height*2, BufferedImage.TYPE_INT_ARGB_PRE
);
Graphics2D gr = bi.createGraphics();
gr.drawImage(img.getImage(),0,0,null);
gr.dispose();
size(img.width, img.height*2);
// 鏡面画像
MirrorFilter mf = new MirrorFilter();
// gap
mf.setGap(0.01f);
// 透明度
mf.setOpacity(0.5f);
// 中央Y
mf.setCentreY(0.5f);

PImage img3 = new PImage(mf.filter(bi, null));
image(img3, 0, 0);
// ファイル保存
save("sample1463a.png");


元画像(sf.jpg):dataサブディレクトリに配置か、Add Filesで追加。


出力画像(sample1463a.png)
ProcessingとJava Image Filters(pixels)を使用して描画した鏡面画像

動作環境
Processing 1.0.7