Wednesday, November 26, 2008

Python Imaging Libraryで画像の端を半透明にぼかす

Python Imaging Libraryで画像の端を半透明にぼかすには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw
import math

# 画像の端を半透明にしてぼかし
img1 = Image.open("sf.jpg")
img2 = Image.new("L", img1.size, 1)
for ly in range(img2.size[1]):
for lx in range(img2.size[0]):
img2.putpixel((lx,ly),
int(((1-pow(2*lx/float(img2.size[0])-1.0, 4))*
(1.0-pow(2*ly/float(img2.size[1])-1.0, 4)))*255))
img1.putalpha(img2)
# pngで保存
img1.save("sample651a.png")

# 白背景と合成してjpegで保存
img3 = Image.new("RGB", img1.size, "#ffffff")
img3.paste(img1, mask=img1)
img3.save("sample651b.jpg")

元画像(sf.jpg)


出力画像1(sample651a.png)


出力画像2(sample651b.png)


関連項目
Python Imaging Libraryまとめ
Python Imaging Libraryで画像の端を半透明にぼかす
Python Imaging Libraryで画像をぼかした円で切り取る

Monday, November 24, 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>sample703(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 画像の指定された点を中心として徐々に白黒化する */
$cx = 150;
$cy = 100;
$cr = 150;
$im = new Imagick("sf.jpg");
$im->setImageMatte(true);

/* 指定された点から徐々に透明になるようにalphaを設定 */
$it = $im->getPixelIterator();
foreach($it as $py => $line){
foreach($line as $px => $pixel){
$pa = 1-sqrt(pow($cx-$px,2)+pow($cy-$py,2))/$cr;
$pa = $pa<0?0:$pa;
$pixel->setColorValue(Imagick::COLOR_ALPHA, $pa);
}
$it->syncIterator();
}
/* グレースケール画像と重ね合わせ */
$im2 = new Imagick("sf.jpg");
$it2 = $im2->getPixelIterator();
foreach($it2 as $py => $line){
foreach($line as $px => $pixel){
$pr = $pixel->getColorValue(Imagick::COLOR_RED);
$pg = $pixel->getColorValue(Imagick::COLOR_GREEN);
$pb = $pixel->getColorValue(Imagick::COLOR_BLUE);
$pixel->setColorValue(Imagick::COLOR_RED, ($pr+$pg+$pb)/3);
$pixel->setColorValue(Imagick::COLOR_GREEN, ($pr+$pg+$pb)/3);
$pixel->setColorValue(Imagick::COLOR_BLUE, ($pr+$pg+$pb)/3);
}
$it2->syncIterator();
}
$im2->compositeImage($im, Imagick::COMPOSITE_DEFAULT, 0, 0);
$im2->writeImage('sample703a.png');

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

</body>
</html>

元画像(sf.jpg)


出力画像(sample703a.png)


関連項目
ImageMagickとPHPで青っぽいところ以外を白黒にする
ImageMagickで、マスクした部分を白黒に変換する
ImageMagickとPHPで、画像の緑っぽい所以外は白黒にする

Python Imaging Libraryで画像をぼかした円で切り取る

PILで画像をぼかした円で切り取るには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageFilter
import ImageDraw

# 半透明円の切り取りをする
img1 = Image.open("sf.jpg")
img2 = Image.new("RGBA", img1.size, "#000000")
mask = Image.new("L", img1.size, 1)
draw = ImageDraw.Draw(mask)
draw.ellipse((10,10,img1.size[0]-11,img1.size[1]-11), fill="#ffffff")
del draw
mask = mask.filter(ImageFilter.BLUR)
img2.paste(img1, (0,0))
img2.putalpha(mask)
# PNGで保存
img2.save("sample650a.png")
# 白背景と合成してjpegで保存
img3 = Image.new("RGB", img1.size, "#ffffff")
img3.paste(img2, mask=img2)
img3.save("sample650b.jpg")

元画像(sf.jpg)


出力画像1(sample650a.png)


出力画像2(sample650b.jpg)


関連情報
Python Imaging Libraryまとめ

librsvgで画像を反転させる

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

invert.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="if" >
<feColorMatrix in="SourceGraphic" type="matrix" values="-1,0,0,0,1 0,-1,0,0,1 0,0,-1,0,1 0,0,0,1,0"/>
</filter>
</defs>

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


コマンド
rsvg-convert invert.svg -f png -o sample696.png

元画像(sf.jpg)


出力画像(sample696.png)

○関連情報
・libsvgに関する他の記事はこちらを参照してください。

Python Imaging Libraryで画像のシャープネスを上げる・下げる

PILで画像のシャープネスを上げたり下げたりするには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageEnhance

# 画像のシャープネスを下げる
img1 = Image.open("sf.jpg")
iec1 = ImageEnhance.Sharpness(img1)
img2 = iec1.enhance(0.5)
img2.save("sample649a.jpg",quality=80)
# 画像のシャープネスを上げる
iec2 = ImageEnhance.Sharpness(img1)
img3 = iec2.enhance(1.5)
img3.save("sample649b.jpg",quality=80)

元画像(sf.jpg)


出力画像1(sample649a.jpg)


出力画像2(sample649b.jpg)


関連情報
Python Imaging Libraryまとめ

Sunday, November 23, 2008

Python Imaging Libraryで画像のコントラストを上げる・下げる

PILで画像のコントラストを上げたり下げたりするには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageEnhance

# 画像のコントラストを上げる
img1 = Image.open("sf.jpg")
iec1 = ImageEnhance.Contrast(img1)
img2 = iec1.enhance(1.5)
img2.save("sample648a.jpg",quality=80)
# 画像のコントラストを下げる
iec2 = ImageEnhance.Contrast(img1)
img3 = iec2.enhance(0.5)
img3.save("sample648b.jpg",quality=80)

元画像(sf.jpg)


出力画像1(sample648a.jpg)


出力画像2(sample648b.jpg)


関連情報
Python Imaging Libraryまとめ

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で使用する方法)
・libsvgに関する他の記事はこちらを参照してください。

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を使用して画像の端を暗くする
・libsvgに関する他の記事はこちらを参照してください。

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まとめ

Saturday, November 15, 2008

Python Imaging Libraryを使用して画像を円形に切り取る

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

# coding=UTF-8
import Image
import ImageDraw

# 画像を円形に切り取る
img1 = Image.open("sf.jpg")
img2 = Image.new("RGB", img1.size, (0xbb, 0xdd, 0xff))
mask = Image.new("1", img1.size, 1)
draw = ImageDraw.Draw(mask)
draw.ellipse((0,0,img1.size[0]-1,img1.size[1]-1), fill=0)
del draw
img3 = Image.composite(img2, img1, mask);

img3.save("sample634a.jpg")

元画像(sf.jpg)


出力画像(sample634a.jpg)


関連項目
Python Imaging Libraryまとめ
Python Imaging Libraryで円を描画する

Friday, November 14, 2008

ImageMagickとPHPで、ビルトインパターンを描画する

ImagickでImageMagickのビルトインパターンを描画するには、以下のコードを実行します。

<!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>sample665(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* ImageMagickビルトインパターンから画像を生成する */
$im = new Imagick();
$im->newPseudoImage(200, 200, "pattern:VERTICALSAW");
$im->writeImage('sample665a.png');

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

</body>
</html>

出力画像(sample665a.png)


関連項目
http://www.imagemagick.org/www/formats.html
このページのBuilt-in Patternsを参照。

Python Imaging Libraryを使用して日本語文字列を描画する

Python Imaging Libraryを使用して日本語文字列を描画するには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw
import ImageFont

# 文字列を描画する
img1 = Image.new("RGB", (150,50), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
# フォントのパスは環境によって変えてね
font = ImageFont.truetype("C:\WINNT\Fonts\msmincho.ttc", 25, encoding="unic")
draw.text((10, 10), u'ABC日本語', font=font, fill=(0x00, 0x00, 0x00))

img1.save("sample633a.jpg")

出力画像(sample633a.jpg)


関連情報
Python Imaging Libraryまとめ

Thursday, November 13, 2008

librsvgを使用して画像をタイル配置する

librsvgを使用して画像をタイル配置するには、以下のsvgファイルを処理します。

tile.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="tf" >
<feImage xlink:href="flower1.png" width="20" height="20" />
<feTile />
</filter>
</defs>

<rect x="0" y="0" width="200" height="200" filter="url(#tf)"/>
</svg>

コマンド
rsvg-convert tile.svg -f png -o sample693.png

元画像(flower1.png)

出力画像(sample693.png)


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

Python Imaging Libraryでポリゴンを描画する

Python Imaging Libraryでポリゴンを描画するには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw
# ポリゴンを描画する
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.polygon((10,10)+(10,89)+(89,10), outline=(0x00, 0x00, 0x00), fill=(0xbb, 0xdd, 0xff))
del draw
img1.save("sample632a.jpg")

出力画像(sanple632a.jpg)


関連情報
Python Imaging Libraryまとめ

Wednesday, November 12, 2008

Python Imaging Libraryで四角を描画する

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

# coding=UTF-8
import Image
import ImageDraw
# 四角を描画する
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.rectangle((10,10,89,89), outline=(0x00, 0x00, 0x00), fill=(0xbb, 0xdd, 0xff))
del draw
img1.save("sample631a.jpg")

出力画像(sample631a.jpg)


関連情報
Python Imaging Libraryまとめ

Tuesday, November 11, 2008

librsvgを使用してdisplacementマップを使用する

librsvgを使用してdisplacementマップを使用するには、以下のsvgファイルを処理します。

displacement.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="mydef1">
<rect x="0" y="0" width="200" height="200" fill="#808080" />
</g>
<g id="mydef2">
<text x="20" y="100" font-family="Arial" font-size="120"
fill="#ffffff">SF
</text>
</g>
<filter id="dmf">
<feImage xlink:href="#mydef1" result="mydef1"/>
<feImage xlink:href="#mydef2" result="mydef2"/>
<feGaussianBlur in="mydef2" stdDeviation="2" result="t1" />
<feComposite in="t1" in2="mydef1" operator="over" result="t2"/>
<feDisplacementMap scale="100" xChannelSelector="R"
yChannelSelector="R" in="SourceGraphic" in2="t2"/>
</filter>
</defs>

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

コマンド
rsvg-convert displacement.svg -f png -o sample692.png

元画像(sf.jpg)






出力画像(sample692.png)



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

Python Imaging Libraryで円を描画する

Python Imaging Libraryで円を描画するには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw
# 円を描画する
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.ellipse((0,0,99,99), outline=(0x00, 0x00, 0x00), fill=(0xbb, 0xdd, 0xff))
del draw
img1.save("sample630a.jpg")

出力画像(sample630a.jpg)


関連項目
Python Imaging Libraryまとめ
Python Imaging Libraryを使用して画像を円形に切り取る

Monday, November 10, 2008

ImageMagickとPHPで垂直に傾けた文字列を画像の上に描画する

ImageMagickとPHPで垂直に傾けた文字列を画像の上に描画するには、以下のコードを実行します。


<!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>sample664(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 画像に文字を垂直に傾けて描画する */
$im = new Imagick('sf.jpg');
$idraw = new ImagickDraw();
/* 塗りつぶし色設定 */
$idraw->setFillColor('#00000080');
$idraw->rectangle(0,0,20,$im->getImageHeight());
$im->drawImage($idraw);
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(14);
/* 塗りつぶし色設定 */
$idraw->setFillColor('white');
/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_SOUTHWEST);
$idraw->setStrokeAntialias(false);
$im->annotateImage($idraw, 14, 0, -90, "San Francisco");

$im->writeImage('sample664a.png');

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

</body>
</html>

元画像(sf.jpg)





出力画像(sample664a.png)




関連項目
ImageMagickとPHPで、画像に日本語の文字列を描画する
ImageMagickとPHPで、画像からはみ出した影付き文字列を描画する
ImageMagickとPHPで画像上に描画した文字列以外の部分をグレースケールにする

Python Imaging Libraryで直線を描画する

Python Imaging Libraryで直線を描画するには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageDraw
# 線を引く
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.line((0,100)+(100,0), fill=(0xbb, 0xdd, 0xff), width=2)
del draw
img1.save("sample629a.jpg")

出力画像(sample629a.jpg)


関連情報
Python Imaging Libraryまとめ

Sunday, November 09, 2008

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

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

# coding=UTF-8
import Image
# 画像を暗くする
img1 = Image.open("sf.jpg")
img2 = Image.new("RGB", img1.size, (0x00, 0x00, 0x00))
img3 = Image.blend(img1, img2, 0.5)
img3.save("sample628a.jpg")

元画像(sf.jpg)


出力画像(sample628a.jpg)


関連情報
Python Imaging Libraryまとめ