Showing posts with label Java2D. Show all posts
Showing posts with label Java2D. Show all posts

Wednesday, March 24, 2010

Java2DとJava Image Filters(pixels)を使用してノイズの付いたグレースケール画像に変換する

Java2DとJava Image Filters(pixels)を使用してノイズの付いたグレースケール画像に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest79
{
public static void main(String args[])
throws Exception
{
/* グレースケールのノイズのついた画像に変換する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

NoiseFilter nf = new NoiseFilter();
img = nf.filter(img, imga);

GrayscaleFilter grf = new GrayscaleFilter();
img = grf.filter(img, null);

DiffuseFilter df = new DiffuseFilter();
df.setScale(1);
img = df.filter(img, null);

ImageIO.write(img, "png", new File("sample1980a.png"));
}
}


元画像(sf.jpg)


出力画像(sample1980a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Monday, March 22, 2010

Java2DとJava Image Filters(pixels)を使用して画像を織物風に変換する

Java2DとJava Image Filters(pixels)を使用して画像を織物風に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest77
{
public static void main(String args[])
throws Exception
{
/* 織物風に変換 */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

WeaveFilter wf = new WeaveFilter();
img = wf.filter(img, imga);

ImageIO.write(img, "png", new File("sample1978a.png"));
}
}


元画像(sf.jpg)


出力画像(sample1978a.png)
織物風に変換した画像

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Saturday, March 20, 2010

Java2DとJava Image Filters(pixels)を使用して画像を滲んだ感じに変換する

Java2DとJava Image Filters(pixels)を使用して画像を滲んだ感じに変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest75
{
public static void main(String args[])
throws Exception
{
/* 画像を滲んだ感じに変換 */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

// 拡散
DiffuseFilter gf = new DiffuseFilter();
gf.setScale(2);
img = gf.filter(img, imga);

// ガウシアンブラー
GaussianFilter gaf = new GaussianFilter(3f);
img = gaf.filter(img, null);

BufferedImage img2 = ImageIO.read(new File("sf2.jpg"));
ContrastFilter ctf = new ContrastFilter();
ctf.setBrightness(0.7f);
ctf.setContrast(0.7f);
img2 = ctf.filter(img2, imga);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.DODGE, 0.5f));
BufferedImage img3 = cf.filter(img2, img);

ImageIO.write(img3, "png", new File("sample1976a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1976a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Thursday, March 18, 2010

Java2DとJava Image Filters(pixels)を使用して画像を手書き風に変換する

Java2DとJava Image Filters(pixels)を使用して画像を手書き風に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest73
{
public static void main(String args[])
throws Exception
{
/* 手書き画像風に変換 */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
// 拡散
DiffuseFilter gf = new DiffuseFilter();
gf.setScale(3);
img = gf.filter(img, imga);

// モーションブラー
MotionBlurFilter mbf = new MotionBlurFilter(12f, 100f, 0.0f, 0.0f);
img = mbf.filter(img, null);

BufferedImage img2 = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
ScratchFilter sf = new ScratchFilter();
sf.setAngle(10);
sf.setAngleVariation(0.08f);
sf.setColor(0xff808080);
sf.setDensity(3.9f);
sf.setLength(0.06f);
sf.setWidth(0.7f);
sf.setSeed(2010);

img2 = sf.filter(img2, null);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.ADD, 0.25f));

BufferedImage img5 = cf.filter(img2, img);

ImageIO.write(img5, "png", new File("sample1974a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1974a.png)
Java2DとJava Image Filtersで手書き風に変換した画像

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Tuesday, March 16, 2010

Java2DとJava Image Filters(pixels)を使用して画像をぼやけたセピア調に変換する

Java2DとJava Image Filters(pixels)を使用して画像をぼやけたセピア調に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest71
{
public static void main(String args[])
throws Exception
{
/* 画像をぼやけたセピア調に変換する */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));

// 拡散
DiffuseFilter gf = new DiffuseFilter();
gf.setScale(1);
BufferedImage img2 = gf.filter(img, null);
// メディアンフィルタ
MedianFilter mf = new MedianFilter();
img2 = mf.filter(img2, null);
// グレースケールフィルタ
GrayscaleFilter grf = new GrayscaleFilter();
img2 = grf.filter(img2, null);

// コントラストを150%
ContrastFilter ctf = new ContrastFilter();
ctf.setContrast(1.5f);
img2 = ctf.filter(img2, null);

BufferedImage img3 = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
FillFilter ff = new FillFilter(0xffffbb33);
BufferedImage img4 = ff.filter(img3, null);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.BLEND, 0.5f));

BufferedImage img5 = cf.filter(img2, img4);
ImageIO.write(img5, "png", new File("sample1972a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1972a.png)
Java2DとJava Image Filtersでぼやけたセピア調に変換した画像

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Saturday, March 13, 2010

Java2DとJava Image Filters(pixels)を使用して画像にノイズをつける

Java2DとJava Image Filters(pixels)を使用して画像にノイズをつけるには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.image.*;

public class Java2DTest78
{
public static void main(String args[])
throws Exception
{
/* ノイズをつける */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

NoiseFilter nf = new NoiseFilter();
img = nf.filter(img, imga);

ImageIO.write(img, "png", new File("sample1979a.png"));
}
}


元画像(sf.jpg)


出力画像(sample1979a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Thursday, March 11, 2010

Java2DとJava Image Filters(pixels)を使用して画像を扇形に変形する

Java2DとJava Image Filters(pixels)を使用して画像を扇形に変形するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest76
{
public static void main(String args[])
throws Exception
{
/* 扇形に変形 */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

CircleFilter cf = new CircleFilter();
cf.setHeight(80);
cf.setAngle(2 * ImageMath.PI * -10 / 360);
cf.setSpreadAngle(2 * ImageMath.PI * 160 / 360);
img = cf.filter(img, imga);

ImageIO.write(img, "png", new File("sample1977a.png"));
}
}


元画像(sf.jpg)


出力画像(sample1977a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Tuesday, March 09, 2010

Java2DとJava Image Filters(pixels)を使用して画像を点画風に変換する

Java2DとJava Image Filters(pixels)を使用して画像を点画風に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.image.*;

public class Java2DTest74
{
public static void main(String args[])
throws Exception
{
/* 点画風に変換 */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

// モーションブラー
MotionBlurFilter mbf = new MotionBlurFilter(3f, 100f, 0.0f, 0.0f);
img = mbf.filter(img, null);

// 拡散
DiffuseFilter gf = new DiffuseFilter();
gf.setScale(3);
img = gf.filter(img, imga);

ContrastFilter ctf = new ContrastFilter();
ctf.setBrightness(1.2f);
ctf.setContrast(1.5f);
img = ctf.filter(img, null);

ImageIO.write(img, "png", new File("sample1975a.png"));
}
}


元画像(sf.jpg)


出力画像(sample1975a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Sunday, March 07, 2010

Java2DとJava Image Filters(pixels)を使用して引っかいたような画像を作成する

Java2DとJava Image Filters(pixels)を使用して引っかいたような画像を作成するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.image.*;

public class Java2DTest72
{
public static void main(String args[])
throws Exception
{
/* 引っかいたような画像を作成する */
BufferedImage img = new BufferedImage(
300, 300, BufferedImage.TYPE_INT_ARGB
);
ScratchFilter sf = new ScratchFilter();
sf.setAngle(10);
sf.setAngleVariation(0.8f);
sf.setColor(0xffc0c0c0);
sf.setDensity(0.9f);
sf.setLength(0.5f);
sf.setWidth(0.5f);
sf.setSeed(2009);

BufferedImage img2 = sf.filter(img, null);
ImageIO.write(img2, "png", new File("sample1973a.png"));
}
}


出力画像(sample1973a.png)


関連項目
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, March 05, 2010

Java2DとJava Image Filters(pixels)を使用して画像にメディアンフィルタをかける

Java2DとJava Image Filters(pixels)を使用して画像にメディアンフィルタをかけるには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.image.*;

public class Java2DTest70
{
public static void main(String args[])
throws Exception
{
/* 画像にメディアンフィルタをかける */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
MedianFilter mf = new MedianFilter();

BufferedImage img2 = mf.filter(img, null);
img2 = mf.filter(img2, null);
ImageIO.write(img2, "png", new File("sample1971a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1971a.png)
Java2DとJava Image Filtersでメディアンフィルタを適用した画像

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Thursday, March 04, 2010

Java2DとJava Image Filters(pixels)を使用してグラデーションのかかったモノトーン画像に変換する

Java2DとJava Image Filters(pixels)を使用してグラデーションのかかったモノトーン画像に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest69
{
public static void main(String args[])
throws Exception
{
/* 画像を指定した色のグラデーションのかかったモノトーン画像に変換 */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
GrayscaleFilter gf = new GrayscaleFilter();
BufferedImage img2 = gf.filter(img, imga);

BufferedImage img3 = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
GradientFilter grf = new GradientFilter(
new Point(0, 0), new Point(0, img.getHeight()),
0xff3070a0, 0xffffff10,
false, GradientFilter.LINEAR,
GradientFilter.INT_SMOOTH);

BufferedImage img4 = grf.filter(img3, null);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.BLEND, 0.5f));

BufferedImage img5 = cf.filter(img2, img4);
ImageIO.write(img5, "png", new File("sample1970a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1970a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Wednesday, March 03, 2010

Java2DとJava Image Filters(pixels)を使用して円錐グラデーションを描画する

Java2DとJava Image Filters(pixels)を使用して円錐グラデーションを描画するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest67
{
public static void main(String args[])
throws Exception
{
/* 円錐グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(150, 150), new Point(300, 300),
0xff7799dd, 0xffffffff,
false, GradientFilter.BICONICAL,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1968a.png"));
}
}


出力画像(sample1968a.png)
Java2DとJava Image Filtersを使用して描画した円錐グラデーション

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Tuesday, March 02, 2010

Java2DとJava Image Filters(pixels)を使用して放射グラデーションを描画する

Java2DとJava Image Filters(pixels)を使用して放射グラデーションを描画するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest66
{
public static void main(String args[])
throws Exception
{
/* 放射グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(100, 100), new Point(200, 100),
0xff7799dd, 0xffffffff,
false, GradientFilter.RADIAL,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1967a.png"));
}
}


出力画像(sample1967a.png)
Java2DとJava Image Filtersを使用して描画した放射グラデーション

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Monday, March 01, 2010

Java2DとJava Image Filters(pixels)を使用してグラデーション画像を作成する

Java2DとJava Image Filters(pixels)を使用してグラデーション画像を作成するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest65
{
public static void main(String args[])
throws Exception
{
/* グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(0, 0), new Point(200, 100),
0xff7799dd, 0xffffffff,
false, GradientFilter.LINEAR,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1966a.png"));
}
}


出力画像(sample1966a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Sunday, February 28, 2010

Java2DとJava Image Filters(pixels)を使用して指定した色のモノトーン画像に変換する

Java2DとJava Image Filters(pixels)を使用して指定した色のモノトーン画像に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest64
{
public static void main(String args[])
throws Exception
{
/* 画像を指定した色のモノトーンのイメージに変換する */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
GrayscaleFilter gf = new GrayscaleFilter();
BufferedImage img2 = gf.filter(img, imga);

BufferedImage img3 = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
FillFilter ff = new FillFilter(0xff7799dd);
BufferedImage img4 = ff.filter(img3, null);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.BLEND, 0.5f));

BufferedImage img5 = cf.filter(img2, img4);
ImageIO.write(img5, "png", new File("sample1965a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1965a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Saturday, February 27, 2010

Java2DとJava Image Filters(pixels)を使用して画像をグレースケールに変換する

Java2DとJava Image Filters(pixels)を使用して画像をグレースケールに変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.image.*;

public class Java2DTest63
{
public static void main(String args[])
throws Exception
{
/* 画像をグレースケールに変換する */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
GrayscaleFilter gf = new GrayscaleFilter();

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


元画像(sf2.jpg)


出力画像(sample1964a.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, February 26, 2010

Java2DとJava Image Filters(pixels)を使用して画像を絵画っぽく変換する

Java2DとJava Image Filters(pixels)を使用して画像を絵画っぽく変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.image.*;

public class Java2DTest62
{
public static void main(String args[])
throws Exception
{
/* 画像を絵画っぽく変換する */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
DiffuseFilter df = new DiffuseFilter();
/* スケール */
df.setScale(3);

OilFilter of = new OilFilter();
/* ピクセルでの効果範囲 */
of.setRange(2);
/* 効果のレベル */
of.setLevels(3);

// 複合フィルタ
CompoundFilter cf = new CompoundFilter(of, df);

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


元画像(sf2.jpg)


出力画像(sample1963a.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/

Saturday, February 20, 2010

Java2DとJava Image Filters(pixels)を使用して四角グラデーションを描画する

Java2DとJava Image Filters(pixels)を使用して四角グラデーションを描画するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest68
{
public static void main(String args[])
throws Exception
{
/* 四角グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(150, 150), new Point(300, 300),
0xff7799dd, 0xffffffff,
false, GradientFilter.SQUARE,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1969a.png"));
}
}


出力画像(sample1969a.png)
Java2DとJava Image Filtersを使用して描画した四角グラデーション

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Monday, January 05, 2009

Java2Dで点線角丸四角を描画する

Java2Dで点線角丸四角を描画するには、以下のコードを実行します。


import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;

public class Java2DTest21
{
public static void main(String args[])
throws Exception
{
/* 点線角丸四角の画像を生成 */
BufferedImage img = new BufferedImage(
100, 100, BufferedImage.TYPE_INT_BGR
);
Graphics2D gr = img.createGraphics();
/* 背景を白で塗りつぶし */
gr.setColor(Color.WHITE);
gr.fillRect(0, 0, 100, 100);

/* レンダリングヒントを設定 */
RenderingHints rh = new
RenderingHints(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);

rh.put(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);

gr.setRenderingHints(rh);


/* 描画色 */
gr.setColor(new Color(0xbb, 0xdd, 0xff));
/* 線のスタイルを設定 */
float dashPattern[] = {4.0f};
BasicStroke bs = new BasicStroke(2.0f,
BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 2.0f,
dashPattern, 0.0f);
gr.setStroke(bs);

/* 点線角丸四角を描画 */
RoundRectangle2D rr = new RoundRectangle2D.Double(
0.0, 0.0, 99.0, 99.0, 40.0, 40.0);
gr.draw(rr);
gr.dispose();
ImageIO.write(img, "jpg", new File("sample745a.jpg"));
}
}


出力画像(sample745a.jpg)

Friday, January 02, 2009

Java2Dで画像をセピア調に変換する

Java2Dで画像をセピア調に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;

public class Java2DTest20
{
public static void main(String args[])
throws Exception
{
/* 画像をセピア調に変換する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
WritableRaster wr = img.getRaster();
int buf[] = new int[wr.getNumDataElements()];

for(int ly=0;ly<wr.getHeight();ly++){
for(int lx=0;lx<wr.getWidth();lx++){
wr.getPixel(lx, ly, buf);

int maxval = Math.max(Math.max(buf[0], buf[1]), buf[2]);
int minval = Math.min(Math.min(buf[0], buf[1]), buf[2]);
int val = (maxval+minval)/2;
buf[0] = val * 0xd0/0xff;
buf[1] = val * 0xa0/0xff;
buf[2] = val * 0x50/0xff;

wr.setPixel(lx, ly, buf);
}
}
ImageIO.write(img, "jpg", new File("sample744a.jpg"));
}
}


元画像(sf.jpg)


出力画像(sample744a.jpg)