Thursday, December 04, 2008

librsvgを使用して画像をセピア調に変換する

librsvgを使用して画像をセピア調に変換するには、以下のsvgファイルを処理します。

sepia.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="sf" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="200" >
<feColorMatrix in="SourceGraphic" type="matrix" result="grayscale"
values="0.33 0.33 0.33 0.00 0.00
0.33 0.33 0.33 0.00 0.00
0.33 0.33 0.33 0.00 0.00
0.00 0.00 0.00 1.00 0.00" />
<!-- 0xd0/0xff=0.82 0xa0/0xff=0.63 0x50/0xff=0.31 -->
<feColorMatrix in="grayscale" type="matrix"
values="0.82 0.00 0.00 0.00 0.00
0.00 0.63 0.00 0.00 0.00
0.00 0.00 0.31 0.00 0.00
0.00 0.00 0.00 1.00 0.00" />
</filter>
</defs>

<image x="0" y="0" width="200" height="200"
xlink:href="sf.jpg" filter="url(#sf)">
<title>sf.jpg</title>
</image>
</svg>


コマンド
rsvg-convert sepia.svg -f png -o sample702.png

元画像(sf.jpg)


出力画像(sample702.png)


○関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)
librsvgで画像をグレースケールに変換する
・libsvgに関する他の記事はこちらを参照してください。

No comments: