==[[Python Imaging Library]]==
[[Python]] |
*http://www.pythonware.com/library/pil/handbook/overviewover[[vi]]ew.htm=====Pillow [[Python Imaging Library ]] (Fork)=====*[[Pillow]]*https://pypi.python.org/pypi/[[Pillow]]/2.2.1
*http://pillow.readthedocs.org/
===概要===
*[[Python Imaging Library ]] は、イメージ処理機能をPythonに追加する。
*様々なファイルフォーマットのサポート、高効率な内部描画、強力なイメージ処理機能を提供
*コア・イメージライブラリは基本的ないくつかのピクセルフォーマットで保存されたデータに高速にアクセスできるようにデザインされているコア・イメージライブラリは基本的ないくつかのピクセルフォーマットで保存されたデータに高速にアクセスできるように[[デザイン]]されている
*一般的なイメージ処理ツールとして安定した土台を提供する。
====イメージアーカイブ====
*[[Python Imaging Library ]] はイメージをアーカイブするバッチ処理アプリケーションに理想的である
*サムネイルを作成する、ファイルフォーマットを変換する、イメージをプリントするなど。
====イメージ表示====
*現在のリリースは、Windows 現在のリリースは、[[Windows]] DIBインターフェースと同様の、Tk PhotoImage、 BitmapImage インターフェースを含む*それは、PythonWin および 他のWindowsベースのツールキットとともに利用できる。他の[[Windows]]ベースのツールキットとともに利用できる。
*デバッグ用途にて、イメージをディスクに書き込み、外部の表示ユーティリティを呼び出すメソッドも備える
====イメージ処理====
*ヒストグラムメソッドは統計からイメージを作成する。これは、[http://typea-mixi01.appspot.com/yh_s?q=%E8%87%AA%E5%8B%95%E3%82%B3%E3%83%B3%E3%83%88%E3%83%A9%E3%82%B9%E3%83%88%E8%AA%BF%E6%95%B4 自動コントラスト調整]の強化に使える
===[[Python Imaging Library Modules|モジュール群] [モジュール群]===
*http://www.pythonware.com/library/pil/handbook/index.htm
*[[Python Imaging Library Modules]]
===チュートリアル===
*http://www.pythonware.com/library/pil/handbook/introduction.htm
>>> im = Image.open(r'c:\work\py\pil01.jpg')
>>> print im.format, im.size, im.mode
JPEG (682, 453) RGB[[R]]GB
*属性の内容
>>> im = Image.open(r'c:\work\py\pil01.jpg')
>>> print im.format, im.size, im.mode
JPEG (682, 453) RGB[[R]]GB
====切り取り、貼り付け、マージ====
*しかしながら、イメージのモードは一致する必要はありません。
*貼り付け前に自動的に変換されます
>>> region = region.transpose(Image.ROTATE_180[[R]]OTATE_180)
>>> im.paste(region, box)
>>> im.save(r'.\pil01.jpg')
=====カラーバンドの分割とマージ=====
*RGBイメージのような、マルチバンドイメージのカラーバンドを独立して扱うことができる。[[R]]GBイメージのような、マルチバンドイメージのカラーバンドを独立して扱うことができる。
*split メソッドは、元の複数のカラーバンドからひとつの色を抜き出した新しいイメージのセットを作成する。
*merge 関数は、モードとイメージのタプルからそれらを混ぜ合わせ新しいイメージを作成する。
>>> im = Image.open(r'c:\work\img\test01.jpg')
>>> r, g, b = im.split()
>>> im = Image.merge("RGB[[R]]GB", (b, g, r))
>>> im.save(r'c:\work\img\test02.jpg')
*test01.jpg
*transpose メソッドを使うと、rotateと同様に回転することや、垂直や水平に反転できる。
out = im.transpose(Image.FLIP_LEFT_RIGHTFLIP_LEFT_[[R]]IGHT)
out = im.transpose(Image.FLIP_TOP_BOTTOM)
out = im.transpose(Image.ROTATE_90[[R]]OTATE_90) out = im.transpose(Image.ROTATE_180[[R]]OTATE_180) out = im.transpose(Image.ROTATE_270[[R]]OTATE_270)
>>> im = Image.open(r'c:\work\img\test01.jpg')
>>> im = im.transpose(Image.FLIP_LEFT_RIGHTFLIP_LEFT_[[R]]IGHT)
>>> im.save(r'c:\work\img\test06.jpg')
*test06.jpg
=====フィルタの適用=====
*ImageFilterモジュールは、多くの事前定義されたフィルターを提供
**BLURBLU[[R]]**CONTOURCONTOU[[R]]
**DETAIL
**EDGE_ENHANCE
**EDGE_ENHANCE_MOREEDGE_ENHANCE_MO[[R]]E**EMBOSSEMB[[OSS]]
**FIND_EDGES
**SHARPENSHA[[R]]PEN
**SMOOTH
**SMOOTH_MORESMOOTH_MO[[R]]E
>>> import ImageFilter
>>> im = Image.open(r'c:\work\img\test01.jpg')
>>> out = im.filter(ImageFilter.EMBOSSEMB[[OSS]])
>>> out.save(r'c:\work\img\test08.jpg')
*test08.jpg
=====マスクを生成する書式=====
*Pythonは論理演算に必要な部分しか評価しない。そして最後に検査した値を返す。[[Python]]は論理演算に必要な部分しか評価しない。そして最後に検査した値を返す。
*なので、以下の 式(expression)が 偽なら false(0) を返し、真なら最後に評価した 255を返す。
*PILは、テキストやグラフィックをPostscript プリンタへ印刷する関数を持つ。
====イメージを読むその他の方法イメージを読む[[その他]]の方法====
*上記までは、単純にファイル名のみを引数に Image モジュールの open 関数を利用していた。
*成功すれば、Image オブジェクトが生成され、失敗すれば IOError が発生。