Friday, October 24, 2008

librsvgで画像を角丸四角に切り取る

librsvgで画像を角丸四角に切り取るには、以下のsvgファイルを処理します。

masked-image.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="300" height="300">

<defs>
<mask id="mask1" maskUnits="userSpaceOnUse"
x="0" y="0" width="300" height="300">
<rect x="50" y="50" width="200" height="200"
rx="20" ry="20"
style="fill:#ffffff; "/>
</mask>
</defs>

<image x="50" y="50" width="200px" height="200px"
xlink:href="sf.jpg" mask="url(#mask1)">
<title>sf.jpg</title>
</image>

</svg>

コマンド
rsvg-convert masked-image.svg -f png -o sample685.png

元画像(sf.jpg)


出力画像(sample685.png)


関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)

No comments: