Tuesday, June 17, 2008

JMagickで文字列画像を作成する

JMagickで文字列画像を生成するには、以下のコードを実行します。

import java.awt.*;
import magick.*;

public class JMagickTest36
{
public static void main(String args[])
throws MagickException
{
ImageInfo ii = new ImageInfo("label:てすと");
/* フォント指定 */
ii.setFont("c:\\winnt\\fonts\\msgothic.ttc");
/* ポイントサイズ指定 */
ii.setPointSize(30);

/* ラベルに合わせて文字列画像を作成 */
MagickImage mi = new MagickImage(ii);

/* 色を変更 */
int iw = (int)mi.getDimension().getWidth();
int ih = (int)mi.getDimension().getHeight();
byte data[] = new byte[iw*ih*4];
mi.dispatchImage(0, 0, iw, ih, "RGBA", data);
int ind = 0;
for(ind=0;ind<iw*ih*4;ind+=4){
/* 真っ白ではないピクセルを水色に */
if( data[ind] != (byte)0xff &&
data[ind+1] != (byte)0xff &&
data[ind+2] != (byte)0xff ){
data[ind+3] = data[ind+0];
data[ind] = (byte)0xbb;
data[ind+1] = (byte)0xdd;
data[ind+2] = (byte)0xff;
}
}
mi.constituteImage(iw, ih, "RGBA", data);

mi.setFileName("sample467a.jpg");
mi.writeImage(new ImageInfo());
}
}

出力画像(sample467a.jpg)


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


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)

No comments: