Thursday, May 22, 2008

JMagickで2値化した画像の黒色部分の色を変え、白色分を透明にする

JMagickで2値化した画像の黒色部分の色を変え、白色分を透明にするには以下のコードを実行します。

import magick.*;

public class JMagickTest29
{
public static void main(String args[])
throws MagickException
{
/* 2値化した画像の黒色部分を水色に、白色部分を透明にする */
MagickImage mi = new MagickImage(new ImageInfo("tree1.jpg"));
/* 画像を2値化 */
mi.thresholdImage(32767);
/* 黒色を水色に変換 */
mi.opaqueImage(
PixelPacket.queryColorDatabase("black"),
new PixelPacket(0xbb*256, 0xdd*256, 0xff*256, 0)
);
/* 白色を透明に変換 */
mi.opaqueImage(
PixelPacket.queryColorDatabase("white"),
new PixelPacket(65535, 65535, 65535, 65535)
);
mi.setFileName("sample449a.png");
mi.writeImage(new ImageInfo());

/* 市松模様と重ね合わせ */
ImageInfo ii = new ImageInfo("pattern:checkerboard");
ii.setSize(mi.getDimension().getWidth() + "x" +
mi.getDimension().getHeight());
MagickImage mi2 = new MagickImage(ii);
mi2.compositeImage(CompositeOperator.SrcOverCompositeOp,mi,0,0);
mi2.setFileName("sample449b.png");
mi2.writeImage(new ImageInfo());
}
}

出力画像(sample229a.png)


出力画像(sample229b.png)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)
JMagickでビルトインパターンの画像を生成する
JMagickで画像を2値化する

No comments: