SVGでテキスト画像

svg-alpha

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

svg-text-a

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

svg-text-yoko

縁取りもできます。

~$ 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

svg-stroke

ランダムな大きさの文字を埋め込んでみましょう。

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

svg-rand

コメント

タイトルとURLをコピーしました