FrontPage

PIL

Python Image Libraryのこと。

ちょっとお勉強してみました。 これは便利。

tips

ストリームから直接画像を生成する

Image.fromstringを使えば文字列(バイナリ)からImageオブジェクトを生成できるのだけど、事前に画像フォーマットやピクセルサイズを把握しておく必要がある。しかし、Image.openを使えば自動検知してくれるので楽。なので、ストリームから渡してみることにしました。

from StringIO import StringIO
import Image

buf=r'hgoehogehoge' # JPGのバイナリなど
im=Image.open(StringIO(buf))

ストリームに画像を保存する

from StringIO import StringIO
import Image

fp=StringIO()
im.save(fp, format="jpeg")
fp.close()

サムネイルを作る

from StringIO import StringIO
import Image

size=(240, 240) # 長辺を240ピクセルとする

im=Image.open(StringIO(buf))
im.thumbnail(size, Image.ANTIALIAS)

resize / thumbnailの違い

こちらからメモです

http://makunouchi.jp/zope3/3496598985

method名拡大縮小縦横比維持対象返値
thumbnail縮小のみ維持する自己破壊型None
resize両方可能維持しない変換画像を返す変換画像
# thumbnail()は元画像を壊すのでコピーして変更
dest_img = origin_img
dest_img.thumbnail((240,240)) 

# resizeは新しい画像を返す
dest_img = origin_img.resize((240, 240))

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-12-31 (金) 15:34:14 (2338d)