Showing posts with label 鏡面映り込み. Show all posts
Showing posts with label 鏡面映り込み. Show all posts

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/

Friday, June 08, 2007

ImageMagickで鏡面映り込みを作成する - その4

ImageMagickで鏡面映り込みを作成するには、以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.4-Q16
rem 右側を若干暗くなるようにグラデーション適用
%im%\convert.exe sample4.jpg -fx "p*(1-i/(w*4))" -bordercolor #c0c0c0 -border 1x1 -channel RGBA sample4t.png
rem 反転&グラデーションをかけて
%im%\convert.exe sample4t.png -fx "p*j/h*0.8" -flip sample4t2.png
rem 縦に連結+台形変形+傾け
%im%\convert.exe sample4t.png sample4t2.png -append -virtual-pixel background -background black -fx "p{i*1.1,(j*w-i*h*0.05)/(w-i*0.1)}" -background none -shear 0x350 -gravity center -extent 220x220 sample170a.jpg

元画像(sample4.jpg)


出力画像(sample170a.jpg)

Friday, March 30, 2007

ImageMagickで鏡面映り込みを作成する - その3

ImageMagickで映りこんだ部分に斜線がはいった
鏡面映り込み画像を作成するには以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.1-Q16
rem 反転&半透明グラデーションをかけて
%im%\convert.exe sample4.jpg -bordercolor #c0c0c0 -border 1x1 -channel A -fx "u!=0?(j/h)*0.6:0" -fx "(i+j)%%5==0?0:p" -flip sample4t.png
rem 縦に連結+傾け
%im%\convert.exe sample4.jpg -bordercolor #c0c0c0 -border 1x1 sample4t.png -append -background none -shear 0x5 -gravity center -extent 220x220 sample115a.png
rem jpgで出力
%im%\convert.exe -size 220x220 xc:black sample115a.png -composite sample115b.jpg

元画像(sample4.jpg)


出力画像(sample115b.jpg)

Saturday, February 17, 2007

ImageMagickで鏡面映り込みを作成する - その2

ImageMagickでちょっと傾けた鏡面映り込みを
作成するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.1-Q16

rem 反転&半透明グラデーションをかけて
%im%\convert.exe sample4.jpg -bordercolor #c0c0c0 -border 1x1 -channel A -fx "u!=0?(j/h)*0.6:0" -flip sample4t.png

rem 縦に連結+傾け
%im%\convert.exe sample4.jpg -bordercolor #c0c0c0 -border 1x1 sample4t.png -append -background none -shear 0x5 -gravity center -extent 220x220 sample79a.png

rem jpgで出力
%im%\convert.exe -size 220x220 xc:black sample79a.png -composite sample79b.jpg

背景色を変更したい場合は最後の「jpgで出力」のxc:blackの部分を変えます。

元画像(sample4.jpg)


出力画像(sample79a.jpg)


Thursday, December 07, 2006

ImageMagickで鏡面写りこみを作成する - その1

ImageMagickで鏡面写りこみを作成するには、
半透明グラデーションを適用して上下反転させることで
表現できます。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
rem 半透明グラデーションをかけて
%im%\convert.exe -size 100x100 -matte -channel A gradient:#000000ff-#00000000 sample2.png -compose multiply -composite -flip sample2d.png
rem 重ね合わせ
%im%\convert.exe -size 100x200 xc:#1a87b0 -matte sample2d.png -geometry +0+100 -compose screen -composite sample2.png -geometry +0+10 -compose atop -composite sample24.jpg

元画像(sample2.png)


出力結果(sample24.jpg)