Python - Pillow:Pythonで画像処理をする
初めに
PillowはPythonで画像処理をするためのライブラリです。本記事は、Pillowの基本的な使い方をまとめます。
Pillow
Pillowとは
Pillowは、Pythonで画像処理を行うためのライブラリです。画像の読み込み、表示、保存、リサイズ、トリミング、回転、フィルタ機能などさまざまな処理を行うことができます。
主な機能の使い方
(画像の指定)
from PIL import Image # 画像ファイルのパスを指定 image = Image.open("image.jpg")
(画像の表示:画像ファイルを開く)
# 画像の表示
image.show()
(画像を保存)
# 保存したいファイル名と形式を指定 image.save("new_image.png")
(リサイズ)
# 画像を幅200px、高さ100pxにリサイズ image = image.resize((200, 100))
(トリミング)
# 画像の左上100px × 100pxを切り取る image = image.crop((100, 100, 200, 200))
(回転)
# 画像を90度回転 image = image.rotate(90)
(フィルター)
from PIL import Image, ImageFilter # 画像にぼかしフィルタを適用 image = image.filter(ImageFilter.GaussianBlur)
ImageFilterには、下のような種類があります。
使ってみた
やったこと
- ウェブ上の画像をURLで取得
- 画像を正方形になるように切り取る
- フィルターでぼかしを入れる
- フォルダ内に保存する
コード全文
from PIL import Image, ImageFilter import requests import io def crop_square(pil_img, width, height): crop_size = abs(width - height) / 2 if width >= height: return pil_img.crop((crop_size, 0, width - crop_size, height)) else: return pil_img.crop((0, crop_size, width, height - crop_size)) def main(): # 画像のURL url = "https://4.bp.blogspot.com/-xN3OofpDu2A/XAnvN3Vpj-I/AAAAAAABQmA/guSSixGZ6cYFey2lgEUnc5q3mEUj6quOACLcBGAs/s200/business_man1_1_smile.png" response = requests.get(url) # 画像ファイルのパスを指定 image = Image.open(io.BytesIO(response.content)) im_thumb = crop_square(image, image.width, image.height) im = im_thumb.filter(ImageFilter.GaussianBlur) im.save("image.png") if __name__=="__main__": main()
(実行結果)
実行前 | 実行後 |
---|---|