Python Image Library (PIL:画像編集ライブラリ)の使い方

2010年2月14日

今回は前回の PILのインストール方法 に引き続き、PILの基本的な操作を説明していきたいと思います。


1
2
3
4
import Image
im = Image.open("hoge.jpg")
im.show()
im.save("hage.gif")

次回は、PIL内部に読み込んだ画像をトリミングしたり回転・拡大・縮小したり色彩変換したり する方法について紹介しようと思います。今日はココマデ。

ファイルは上記のようにImage.open(filename)で開きます。 

画像形式はコンテンツから自動的に判別しますので、単にファイル名を渡すだけで十分です。 

show()メソッドは、PILがオープンしたファイルをGUIで閲覧するためのメソッドです。 

im.show()を実行すると、ウィンドウが出現し画像を表示してくれます。

save(filename)メソッドは、ファイル名:filenameのファイルに画像を保存します。 

拡張子で自動的に保存形式を認識してくれます。


上記例ではhoge.jpgをオープンしてそのままGIF形式でhage.gifとして保存しています。


Image.open()にて生成されたオブジェクトにはmodeメンバがあります。 

これは画像の各ピクセルに対する色の保存形式に関する情報が格納されており、

以下の8通りがあります。


 

  • 1
    1-bit pixels, 
  • B/W L
    8-bit pixels, 
  • B/W P
    8-bit pixels, 
  • RGB
    3x8-bit pixels, true color 
  • RGBA
    4x8-bit pixels, true colour (透明付き) 
  • CMYK
    4x8-bit pixels 
  • YCbCr
    3x8-bit pixels 
  • I
    32-bit整数 
  • F
    32-bit実数

様々なモードがあり、それぞれのモードによって扱うデータ構造も変わってきますが、

 (R, G, B)をそれぞれ[0, 0xff]の範囲で表すRGB形式が 最もメジャーだと思います。


Webでよく見られる色見本の表示形式も上記方式に該当しますので 以後の説明はRGBで説明していきたいと思います。 


RGB形式では、上記R, G, Bの3つ組のタプルで例えば(0x00, 0x00, 0x80)のような形式でデータ構造が 定義されています。

1
2
3
4
5
import Image
im = Image.open("hoge.gif")

if ( im.mode != "RGB" ):
    im = im.convert("RGB")

PIL内部で必ずRGB形式で扱いたいのならば以下のようにconvert()メソッドを用いて モードを変更するようにしましょう。