#概要
ImageMagickを用いて文字を描画する際にちょっとでも装飾をつけたい時があります。
今回はいくつかサンプルをお見せしながら使えるTipsを紹介していきます。
#サンプル
今回はUnityちゃんの上に文字を描画してみて視認性がどの程度あがるかを確認します。
そのまま絵の上に赤文字を表示
文字を描画するにはfontの指定が必要で今回はosakaフォント使ってます。あとはサイズの指定、色の指定、テキストの位置やテキストの内容を指定しています。
$ convert -font Osaka.ttf -gravity center -pointsize 32 -fill red\
-draw "text 0,0 大鳥こはく"\
I_am_Unity-Chan.png out.png
シンプルに赤文字だけだと大分文字の視認性が悪いですね。
黒のアウトラインを表示
strokeを指定すると線の色を指定できます。
$ convert -font Osaka.ttf -gravity center -pointsize 32 -fill red\
-stroke black -strokewidth 1 -draw "text 0,0 大鳥こはく"\
I_am_Unity-Chan.png out.png
アウトラインがあると少しだけ視認性があがりますがまだまだ見にくいですね。
黒のアウトラインの上に白枠も追加
1コマンドで文字を2回書いています。一つは白の太字で書いてその上に先ほど描いた黒のアウトラインの文字を描いています
$ convert -font Osaka.ttf -gravity center -pointsize 32 -fill red\
-stroke white -strokewidth 7 -draw "text 0,0 大鳥こはく"\
-stroke black -strokewidth 1 -draw "text 0,0 大鳥こはく"\
I_am_Unity-Chan.png out.png
これで大分見やすくなったかと思います。
文字にグラデーションをつける
コマンドを3つに分けてます。
1番目のコマンドがグラデーションの文字画像を最初に作っています。
2番目は先ほどのコマンドと一緒です。
3番目で2つの画像を合成しています。
ちなみにグラデーションの画像を作る際に使っているtileというオプションですがキャンバスの色とオーバーレイすることによる表現。なのでキャンバスサイズによって見え方は違うのでその部分の調整は難しかったりします。また一緒にstrokeなどを使うとグラデーションの色が変化してしまうのでコマンドを分けていたりします。
$ convert -size 300x40 xc:white -transparent white -font Osaka.ttf\
-gravity center -pointsize 32 -tile gradient:blue-red\
-draw "text 0,0 大鳥こはく" gradients_font.png
$ convert -font Osaka.ttf -gravity center -pointsize 32 -fill red\
-stroke white -strokewidth 7 -draw "text 0,0 大鳥こはく"\
-stroke black -strokewidth 1 -draw "text 0,0 大鳥こはく"\
I_am_Unity-Chan.png out.png
$ convert out.png gradients_font.png -gravity center -composite out.png
ここまですると視認性もあがり色も単調じゃなくデザインにも遊びが持たせるようになります。
ちなみに以下の参考にあるサイトに行くとこれ以外にも様々な効果の例が乗ってるのでより豪華に表示したい方は参考にしていただければと思います。
#参考
Font Effects -- IM v6 Examples - ImageMagick
#ライセンス
© Unity Technologies Japan/UC