Saturday, November 22, 2008

ImageMagickとPHPで、画像を反転させる

Imagickで画像を反転させるには、以下のコードを実行します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<title>sample668(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 画像を反転させる */
$im = new Imagick('sf.jpg');
$im->negateImage(false);
$im->writeImage('sample668a.jpg');
$im->destroy();
?>
<img src="sample668a.jpg" />

</body>
</html>

元画像(sf.jpg)


出力画像(sample668a.jpg)


関連項目
ImageMagickとPHPで画像上に描画した文字列以外の部分をグレースケールにする
ImageMagickとPHPで、画像をエンボス処理する

Python Imaging Libraryを使用して画像を暗くする

PILを使用して画像を暗くするには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageEnhance

# 画像を暗くする
img1 = Image.open("sf.jpg")
ieb = ImageEnhance.Brightness(img1)
img2 = ieb.enhance(0.5)
img2.save("sample647a.jpg",quality=80)

元画像(sf.jpg)


出力画像(sample647a.jpg)


関連情報
Python Imaging Libraryまとめ

Friday, November 21, 2008

ImageMagickで画像の一部の矩形領域を明るくする

ImageMagickで画像の一部の矩形領域を明るくするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.3-Q16
%im%\convert.exe sf.jpg -region 100x100+50+50 -modulate 120 sample646a.png

元画像(sf.jpg)


出力画像(sample646a.png)


関連項目
ImageMagickで画像の暗い部分を明るくする
ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくする
ImageMagickで画像のレベルを変更する

librsvgで画像を左右反転させる

librsvgで画像を左右反転させるには、以下のsvgファイルを処理します。

flip.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">

<image x="0" y="0" width="200" height="200"
xlink:href="sf.jpg" transform="scale(-1,1) translate(-200,0)">
<title>sf.jpg</title>
</image>
</svg>


コマンド
rsvg-convert flip.svg -f png -o sample695.png

元画像(sf.jpg)


出力画像(sample695.png)


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

Python Imaging Libraryで画像をビデオ風にする

PILで画像をビデオ風にするには、以下のコードを実行します。


# coding=UTF-8
import Image
import ImageDraw

# 画像をビデオ風に変換
img1 = Image.open("sf.jpg")
for ly in range(img1.size[1]):
for lx in range(img1.size[0]):
if ly%2 == 0 :
pv = img1.getpixel((lx, ly))
img1.putpixel((lx,ly), (pv[0]/2, pv[1]/2, pv[2]/2))
img1.save("sample639a.jpg")


元画像


出力画像(sample639a.jpg)


関連情報
Python Imaging Libraryまとめ

Wednesday, November 19, 2008

Python Imaging Libraryを使用して、画像を荒いドットに変換する

PILを使用して、画像を荒いドットに変換するには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw

# 画像を荒いドットにする
img1 = Image.open("sf.jpg")
img2 = img1.resize((img1.size[0]/10,img1.size[1]/10))
img2 = img2.resize(img1.size)

img2.save("sample638a.jpg")

元画像(sf.jpg)


出力画像(sample638a.jpg)


関連情報
Python Imaging Libraryまとめ

Tuesday, November 18, 2008

ImageMagickとPHPで青っぽいところ以外を白黒にする

Imagickで青っぽいところ以外を白黒にするには、以下のコードを実行します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<title>sample667(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 青っぽい所以外を白黒にする */
$im = new Imagick('sf.jpg');
$im2 = $im->fxImage("(hue>0.47&&hue<0.69&&lightness>0.45)?p:lightness");
$im2->writeImage('sample667a.png');

$im2->destroy();
$im->destroy();
?>
<img src="sample667a.png" />

</body>
</html>

元画像(sf.jpg)


出力画像(sample667a.png)


関連項目
ImageMagickで、青っぽい所以外を白黒にする (Convertコマンドによる同様の処理)

Python Imaging Libraryを使用して画像を角丸四角に切り取る

Python Imaging Libraryを使用して画像を角丸四角に切り取るには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw

# 角丸四角で画像を切り取る
img1 = Image.open("sf.jpg")
img2 = Image.new("RGB", img1.size, "#ffffff")
mask = Image.new("1", img1.size, 1)
draw = ImageDraw.Draw(mask)
rx = 20
ry = 20
fillcolor = 0
draw.rectangle((0,ry)+(img1.size[0]-1,img1.size[1]-1-ry), fill=fillcolor)
draw.rectangle((rx,0)+(img1.size[0]-1-rx,img1.size[1]-1), fill=fillcolor)
draw.pieslice((0,0)+(rx*2,ry*2), 180, 270, fill=fillcolor)
draw.pieslice((0,img1.size[1]-1-ry*2)+(rx*2,img1.size[1]-1), 90, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,img1.size[1]-1-ry*2)+
(img1.size[0]-1,img1.size[1]-1), 0, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,0)+
(img1.size[0]-1,ry*2), 270, 360, fill=fillcolor)
del draw

img3 = Image.composite(img2, img1, mask);

img3.save("sample637a.jpg")

元画像(sf.jpg)


出力画像(sample637a.jpg)

関連項目
Python Imaging Libraryまとめ
Python Imaging Libraryを使用して角丸四角を描画する

Monday, November 17, 2008

Python Imaging Libraryを使用して角丸四角を描画する

Python Imaging Libraryを使用して角丸四角を描画するには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw

# 角丸四角を描画する
img1 = Image.new("RGB", (100,100), "#ffffff")
draw = ImageDraw.Draw(img1)
rx = 10
ry = 10
fillcolor = "#bbddff"
draw.rectangle((0,ry)+(img1.size[0]-1,img1.size[1]-1-ry), fill=fillcolor)
draw.rectangle((rx,0)+(img1.size[0]-1-rx,img1.size[1]-1), fill=fillcolor)
draw.pieslice((0,0)+(rx*2,ry*2), 180, 270, fill=fillcolor)
draw.pieslice((0,img1.size[1]-1-ry*2)+(rx*2,img1.size[1]-1), 90, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,img1.size[1]-1-ry*2)+
(img1.size[0]-1,img1.size[1]-1), 0, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,0)+
(img1.size[0]-1,ry*2), 270, 360, fill=fillcolor)
del draw

img1.save("sample636a.jpg")

出力画像(samoke636a.jpg)


関連情報
Python Imaging Libraryまとめ

Sunday, November 16, 2008

librsvgを使用して画像の端をぼかす

librsvgを使用して画像の端をぼかすには、以下のsvgファイルを処理します。

blurred-edge.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="5" y="5" width="190" height="190" fill="#ffffff"/>
</g>
<filter id="bef" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="200" >
<feImage xlink:href="#maskimage" result="maskimage"/>
<feGaussianBlur in="maskimage" stdDeviation="5" result="blurred"/>
<feComposite in="SourceGraphic" in2="blurred" operator="in"/>
</filter>
</defs>

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


コマンド
rsvg-convert blurred-edge.svg -f png -o sample694.png

元画像(sf.jpg)


出力画像(sample694.png)


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

Python Imaging Libraryを使用してパイを描画する

Python Imaging Libraryを使用してパイを描画するには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw

# パイを描画する
img1 = Image.new("RGB", (100,100), "#ffffff")
draw = ImageDraw.Draw(img1)
draw.pieslice((10,10)+(89,89), 90, 180, outline="#000000", fill="#bbddff")
del draw

img1.save("sample635a.jpg")

出力画像(sample635a.jpg)


関連情報
Python Imaging Libraryまとめ