Saturday, December 06, 2008

librsvgを使用して画像の彩度をおとす

librsvgを使用して画像の彩度をおとすには、以下のsvgファイルを処理します。

saturate.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="saturate" values="0.5" />
</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 saturate.svg -f png -o sample705.png

元画像(sf.jpg)


出力画像(sample705.png)


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

Friday, December 05, 2008

ImageMagickで放射グラデーションを描画する

ImageMagickで放射グラデーションを描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.4-Q16
%im%\convert.exe -size 200x200 radial-gradient:#bbddff-#ffffff sample704a.png

出力画像(sample704a.png)


関連項目
ImageMagickとPHPで放射グラデーションを描画する (Imagickでの同様の処理)
RMagickで放射グラデーションを描画する (RubyとRmagickでの同様の処理)

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で画像をグレースケールに変換する

Wednesday, December 03, 2008

Python Imaging Libraryで画像をセピア調に変換する

Python Imaging Libraryで画像をセピア調に変換するには、以下のコードを実行します。


# coding=UTF-8
import Image
import ImageOps

# 画像をセピア調に変換する
img1 = Image.open("sf.jpg")
#img2 = ImageOps.grayscale(img1)
for ly in range(img1.size[1]):
for lx in range(img1.size[0]):
pv = img1.getpixel((lx, ly))
pv2 = (pv[0]+pv[1]+pv[2])/3
pr = int(pv2 *0xd0/0xff)
pg = int(pv2 *0xa0/0xff)
pb = int(pv2 *0x50/0xff)
img1.putpixel((lx,ly), (pr,pg,pb))
img1.save("sample701a.png")

元画像(sf.jpg)


出力画像(sample701a.png)


関連情報
Python Imaging Libraryまとめ

Tuesday, December 02, 2008

librsvgを使用して、画像に半透明ぼかしの文字列を描画する

librsvgを使用して、画像に半透明ぼかしの文字列を描画するには、以下のsvgファイルを処理します。

blurred-text.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>
<g id="mes">
<text x="3%" y="65%" font-family="Arial" font-size="30"
fill="#ffffff" fill-opacity="0.8" filter="url(#gbf)">San Francisco
</text>
</g>
<filter id="btf" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="200" >
<feImage xlink:href="#mes" result="mes"/>
<feGaussianBlur in="mes" stdDeviation="1.5" result="bt"/>
<feComposite in="bt" in2="SourceGraphic" operator="over" />
</filter>
</defs>

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

コマンド
rsvg-convert blurred-text.svg -f png -o sample700.png

元画像(sf.jpg)


出力画像(sample700.png)

Monday, December 01, 2008

librsvgを使用して画像をシャープにする

librsvgを使用して画像をシャープにするには、以下のsvgファイルを処理します。

sharpen.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">
<feConvolveMatrix in="SourceGraphic" order="3"
kernelMatrix="0 -0.2 0 -0.2 1.8 -0.2 0 -0.2 0" />
</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 sharpen.svg -f png -o sample699.png

元画像(sf.jpg)


出力画像(sample699.png)

Sunday, November 30, 2008

librsvgを使用して画像の端を暗くする

librsvgを使用して画像の端を暗くするには、以下のSVGファイルを処理します。

edge-darkening.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>
<!-- 端が透明なマスク -->
<g id="maskimage"
x="0" y="0" width="200" height="200">
<rect x="0" y="0" width="200" height="200" fill="#ffffff"/>
</g>
<!-- 黒背景 -->
<g id="bg">
<rect x="0" y="0" width="200" height="200" fill="#000000" />
</g>
<filter id="edf">
<!-- マスクイメージをぼかす -->
<feImage xlink:href="#maskimage" result="maskimage"/>
<feGaussianBlur in="maskimage" stdDeviation="8" result="blurred"/>
<!-- マスクイメージを使用して切り取り -->
<feComposite in="SourceGraphic" in2="blurred" operator="in" result="iwt"/>
<!-- 半透明画像と黒背景を重ね合わせ -->
<feImage xlink:href="#bg" result="bg"/>
<feComposite in="iwt" in2="bg" operator="over" />
</filter>
</defs>

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

コマンド
rsvg-convert edge-darkening.svg -f png -o sample698.png

元画像(sf.jpg)


出力画像(sample698.png)


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