Python Image Library(PIL)の使い方
またしてもpython chanllengeです.
PILを用いることになったのでお勉強.
今回はコードとして全部書いてしまいました.
PILを用意
easy_install PIL
もしくは
pip install PIL
とかでいけるはずです.
easy_installとかpipについてはググッてください.
img.py
# -*- encoding:utf-8 -*- # こうではなく # import PIL import Image def img(filename='sample.jpg'): # sample.jpgを開く im = Image.open(filename) # sample.jpgを閲覧 im.show() data = im.getdata() # 画素をイテレータとして得る for d in data: print d, # sample.jpgのフォーマット, モード, サイズ, 情報を取得 print 'format =', im.format print 'mode =', im.mode print 'size =', im.size print 'info =', im.info # sample.jpgをsample2.jpgとしてjpeg形式で保存(png等も指定できる) im.save('sample2.jpg', 'jpeg') # sample.jpgを複製して閲覧 im.copy().show() # 新しく画像を作成(形式, サイズ, 第一引数で指定したcolor)の3つの引数 new_im = Image.new('RGB', (500, 633), (128, 100, 200)) # 新しく作成した画像をnew_sample.jpgとして保存 new_im.save('new_sample.jpg', 'jpeg') # new_sample.jpgを開く ni = Image.open('new_sample.jpg') # sample.jpgとnew_sample.jpgを0.5ずつの割合でブレンド bl = Image.blend(im, new_im, 0.5) # ブレンドしたものをsample3.jpgとして保存 bl.save('sample3.jpg', 'png') # ブレンドした画像のヒストグラムを表示 print bl.histogram() # ブレンドした画像をRGBで分解してそれぞれ表示 r, g, b = bl.split() r.show() g.show() b.show() # ブレンドした画像を2値化して表示 bl.convert('1').show() # ブレンドした画像をグレースケール化して表示 bl.convert('L').show() # ブレンドした画像を100*100にサイズ変換して文字列化する st = bl.resize((100, 100)).tostring() print st # 文字列から画像を起こす # 元画像より大きなサイズにして起こすことは出来ない im_st = Image.fromstring('RGB', (100, 100), st) im_st.show() if __name__ == '__main__': img()
他にも切り貼りしたりも出来るようです.
すっごい簡単に画像処理ができてしまうみたい強力なライブラリでした.