Monday, December 08, 2008

librsvgを使用して白い影を描画する

librsvgを使用して白い影を描画するには、以下のsvgファイルを処理します。

whiteshadow.svg

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="200" height="200">

<defs>
<filter id="gbf" filterUnits="userSpaceOnUse" x="0" y="0" width="220" height="50" >
<feColorMatrix in="SourceAlpha" type="matrix"
values="-1,0,0,0,1 0,-1,0,0,1 0,0,-1,0,1 0,0,0,1,0" result="ra"/>
<feGaussianBlur in="ra" stdDeviation="4" result="shadow"/>
<feOffset in="shadow" dx="4" dy="4" result="shadow2"/>
<feComposite in="SourceGraphic" in2="shadow2" operator="over"/>
</filter>
</defs>

<image x="0" y="0" width="200" height="200"
xlink:href="sf.jpg" >
<title>sf.jpg</title>
</image>
<text x="10" y="30" font-family="Arial" font-size="25"
style="fill:#888080; stroke:#888080;" filter="url(#gbf)">San Francisco
</text>
</svg>

コマンド
rsvg-convert whiteshadow.svg -f png -o sample706.png

元画像(sf.jpg)


出力画像(sample706.png)

No comments: