SVGで画像にテキストを埋め込むこともできます。
SVG形式で「あ」をベクタ画像にして、inkscapeでラスタ(PNG)画像にしてみます。
スクリプトはこれです。
~$ cat text.sh cat <<EOL > /tmp/tmp.svg <svg width="640" height="400"> <text x="0" y="400" font-size="400"> あ </text> </svg> EOL inkscape -z -e out.png /tmp/tmp.svg
以下のようにコマンドを実行すると、out.pngができます。
~$ . text.sh
rotateを指定して回転、色も指定できます。
~$ cat text-laydown.sh cat <<EOL > /tmp/tmp.svg <svg width="640" height="400"> <text x="0" y="0" font-size="400" rotate="90" fill="red"> あ </text> </svg> EOL inkscape -z -e out.png /tmp/tmp.svg
縁取りもできます。
~$ cat text-stroke.sh cat <<EOL > /tmp/tmp.svg <svg width="640" height="400"> <text x="0" y="400" font-size="400" stroke="green" stroke-width="10" fill="yellow"> あ </text> </svg> EOL inkscape -z -e out.png /tmp/tmp.svg
ランダムな大きさの文字を埋め込んでみましょう。
a="" colors="red orange yellow green cyan blue purple" for c in $colors;do x=`expr $RANDOM % 200` s=`expr $RANDOM % 300` a=$a`printf "<text x=\"%s\" y=\"200\" font-size=\"%s\" fill=\"%s\">\n" $x $s $c` a=$a`printf "%s</text>\n" $c` done cat <<EOL > /tmp/tmp.svg <svg width="640" height="300"> $a </svg> EOL inkscape -z -e out.png /tmp/tmp.svg
コメント