backport

技術ネタと野球とときどき雑談

im4javaで文字を描画するときの注意

2017/05/24
development Java, im4java

ImageMagickで文字列を描画するコマンドにlabelがあります。これをim4javaで使おうとしてハマったのでメモ。

im4javaにはlabelを指定するオプションはないみたいです。そういう時はaddRawArgsを使うのがセオリー。

IMOperation op = new IMOperation();
op.background("transparent");
op.fill("#000000");
op.pointsize(24);
op.kerning(2);
op.font("/PATH/TO/FONT");
op.addRawArgs("label:" + "Hello!!");

これはうまくいきます。フォントをちゃんと指定すれば日本語もOK。 ところが、Hello!!Hello, world!!に置き換えるとうまくいきません。スペースを含むとダメなんですね。

試行錯誤の結果、addRawArgsじゃなくてaddImageを使えばいいと判明。

IMOperation op = new IMOperation();
op.background("transparent");
op.fill("#000000");
op.pointsize(24);
op.kerning(2);
op.font("/PATH/TO/FONT");
// op.addRawArgs("label:" + "Hello, world!!"); // こうじゃなくて
op.addImage("label:" + "Hello, world!!"); // こうする

im4java / Discussion / Open Discussion:key:val arguments; geometry offsetでBernhard Bablokさんが

IM treats label: as an pseudo-image-format,

って書いている通りでした。知らんがな...



コメント欄を表示する

おススメ

WEB+DB PRESS総集編[Vol.1~102] (WEB+DB PRESS plusシリーズ)

知識の幅を広げたい人は必携

【防水進化版 IPX6対応】SoundPEATS(サウンドピーツ) Q30 Bluetooth イヤホン 高音質 [メーカー1年保証] 低音重視 8時間連続再生 apt-Xコーデック採用 人間工学設計 マグネット搭載 CVC6.0ノイズキャンセリング マイク付き ハンズフリー通話 ブルートゥース イヤホン IP66防塵防水 ワイヤレス イヤホン Bluetooth ヘッドホン (ブラック)

ワイヤレスはやっぱり便利

Kindle Paperwhite Wi-Fi、ブラック

読みたいときに読みたい本を読めるのが嬉しい

超小型65W ノートPC汎用 ACアダプター FINsix ”Dart” (シルバー)超軽量85g 11種類の変換プラグで1000機種以上のノートPCに対応 USB5V出力付きでPCとスマホ同時充電 ※必ずご使用のPCとの互換性をご確認ください。『PSE認証済』

持ち運びに最適な小型軽量ACアダプタ