フォントの指定

非常に非常に貴重なサンプルを見る限り、フォントの指定は名前で行っていたので真似してみたが一向にフォントが変わらない。別段間違ったフォント名を指定してもエラーにはならない。でもってググってみたら、PerlMagickで同じようにハマった人がいてその時の対処をJMagickでも試してみた…おっ、日本語が表示された。至って単純、フォントファイルのフルパスを次のような感じで指定してあげればよい。

 DrawInfo dinfo = new DrawInfo(new ImageInfo("sample.jpg"));
 dinfo.setGravity(GravityType.SouthEastGravity); // 右下に表示
 dinfo.setPointsize(30); // 文字サイズ
 PixelPacket packet = PixelPacket.queryColorDatabase("green"); // 文字の色
 dinfo.setFill(packet); 
 dinfo.setOpacity(0);
 dinfo.setFont("C:\\WINDOWS\\Fonts\\msgothic.ttf"); // MSゴシックの場合
 dinfo.setText("日本語テスト"); // 表示する文字
 dinfo.setTextAntialias(true);

でもって、これをMagickImage#annotate(DrawInfo)に渡してあげればよい。