Pythonware.comで配布している画像を扱うためのライブラリ。ドキュメントは
ここ
Vineだとrpmがあったので、
# apt-get install Imaging
でインストール。
(しかしPIL用のフォントは自動では入らない…)
PILはいくつかのライブラリに分かれている。
僕はピクセル操作とかお絵かきがしたかったので、ImageとImageDrawをimport。
ImageDrawには長方形とか線とか丸とかを書けるメソッドが備わってる。詳しくは
ここ参照。
import Image
import ImageDraw
im = Image.new("RGB", (300, 300), (255,255,255))
# 最後の255 255 255は色深度を示す。普通はrgbそれぞれ256階調(00-ff)なので、255。
draw=ImageDraw.Draw(im)
draw.rectangle(( 50,150)+(150,250), fill=(127,127,255))
draw.rectangle((150, 50, 250,150), fill=(255,255,127))
im.save("a.png", "PNG")
とかやって、まずは
a.pngを保存してみました。
CGIで画像を出力するときは、いったん保存するのではなく、画像データをそのままブラウザに送ったほうがいい。
これ、Imageのtostringを使って実現しようとしたけどうまくいかず…
結局、sys.saveを用いて
im = Image.new("RGB", (300, 300), (255,255,255))
...
print "Content-Type: image/png\n"
im.save(sys.stdout, "PNG")
とするとうまくいった。
例えば
こんなのが出力できる。