My Yahoo!に追加 Yahoo!ブックマークに登録

文字列を画像にするのに、コマンドラインから描画する方法があったのでメモしとく。
基本は下の様なコマンドで文字列を描画。

convert -size 240x60 xc:none -font /usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf -gravity center -fill green -draw "font-size 28 text 0,0 '装飾なしの普通の文字'" test1.png
test1

おや?はみ出したので、ちょっと調整。

convert -size 360x60 xc:none -font /usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf -gravity center -fill green -draw "font-size 28 text 0,0 '装飾なしの普通の文字'" test2.png
test2

オプションの意味は以下のとおり。
-size画像のサイズ。xc:noneで背景を透明にしている。noneの代わりに#ff0とかredとか書いて背景をつけられる。
-fontフォントの定義名やフォントのパスを書くらしい。パス書かないとうまく行かなかったのでフルパスを書いてる。convert -list fontとすると指定方法が分かるはず。
-gravity文字の配置。convert -list gravityとすると指定方法が分かるはず。
-fill文字の色。red、yellowなどの名前や#f0fや#ff6699などと指定できるみたい。
-drawfont-sizeで文字の大きさ。次がtextの描画位置のオフセットを指定するらしい。あとは文字列「@」を先頭につけるとファイル読み込みできるらしいけど試してない。

続いて縁取り装飾してみる。
convert -size 360x60 xc:none -font /usr/share/fonts/opentype/otf-japanese-gothic.otf  -gravity center -fill blue -stroke 'red' -strokewidth 2 -draw "font-size 58 text 0,0 '縁取り'" test3.png
test3

影付きはこんなかな?
convert -size 360x60 xc:white -font /usr/share/fonts/opentype/otf-japanese-gothic.otf  -gravity center -fill gray -draw "font-size 58 text 0,0 '影付き'" -blur 10x10 \( -size 360x60 xc:none -font /usr/share/fonts/opentype/otf-japanese-gothic.otf  -gravity center -fill gold -draw "font-size 58 text 0,0 '影付き'" \) -compose over -composite test4.png
test4

微妙に影の形が気に入らないので、ちょっとずらしてみる。
convert -size 360x60 xc:white -font /usr/share/fonts/opentype/otf-japanese-gothic.otf  -gravity center -fill gray -draw "font-size 58 text 10,10 '影付き'" -blur 8x8 \( -size 360x60 xc:none -font /usr/share/fonts/opentype/otf-japanese-gothic.otf  -gravity center -fill gold -draw "font-size 58 text 0,0 '影付き'" \) -compose over -composite test5.png
test5

こんな感じかな?
()←で囲ってある部分が文字本体で、括弧でくくってない方が影の処理。
同じ文字列を色やぼかし具合を変えて、grayの文字をずらして重ねることで影にしてみた。
オプションの意味は以下のとおり。
-blurぼかし方の指定。
-compose重ね方。convert -list composeで重ね方の種類がでてくる。
-composite重ねた後のファイル名

次は立体的にしてみる。
convert -size 360x60 xc:white -font /usr/share/fonts/opentype/otf-japanese-gothic.otf  -gravity center -fill red -draw "font-size 58 text 0,0 '立体的な文字'" -shade 30x100 test6.png
test6

逆にへこますときは、shadeの数を逆にするといいらしい。
convert -size 360x60 xc:white -font /usr/share/fonts/opentype/otf-japanese-gothic.otf  -gravity center -fill red -draw "font-size 58 text 0,0 '立体的な文字'" -shade 100x30 test7.png
test7

色付きにしてみる。
convert -size 360x60 xc:none -font /usr/share/fonts/truetype/umefont/ume-tgs4.ttf -gravity center -fill white -draw "font-size 58 text 0,0 '色付き立体'" -shade 100x30 -blur 1x1 \( -size 360x60 xc:white -font /usr/share/fonts/truetype/umefont/ume-tgs4.ttf -gravity center -fill gold -draw "font-size 58 text 0,0 '色付き立体'" \) -compose overlay -composite test8.png
test8

なんか綺麗に影がつかないけど、こんな感じかな?
shadeで作った影情報をoverlayで重ねて立体感を出すようにすればいいっぽいけどパラメータが難しいな。

あんまり複雑なのは普通にgimp使った方が楽かな?



関連するBlogはこちらからどうぞ〜! → 人気ブログランキングへにほんブログ村 IT技術ブログ Linuxへ