【Pillow】Pythonで画像のサイズと解像度変更
何も考えずこのブログに画像を貼り付けているが、投稿あたりの容量が決まっている? 画像として表示されない場合がある。
取り急ぎ、画像圧縮をやる。
画像処理用モジュールPillowを使う。インストールが必要。
pip install pillow
ファイルの容量を取得
import os file_path = "何とか.png" file_size = os.path.getsize(file_path) print(file_size)
Image.resize(size, resample=0)
でsize
に タプルで(width,height) を、resample
で解像度のフィルター6段階設定。
解像度フィルターは次の6段階。
- NEAREST
- BOX
- BILINEAR
- HAMMING
- BICUBIC
- LANCZOS
指定なしでデフォルトのNEAREST
。
画像処理用モジュール Pillowを使うのでインストール。
pip install pillow
画像のサイズを取得
指定した画像の高さと幅を調べる。
from PIL import Image # 画像ファイル名指定 file_name = "ほにゃらら.jpg" # 入力画像の読み込み img = Image.open(file_name) width, height = img.size # 画像の幅を表示 print('width:', width) # 画像の高さを表示 print('height:',height)
width: 250
height: 333
サイズを指定して拡大縮小
from PIL import Image img = Image.open('何とか.png') img_resize = img.resize((256, 256)) img_resize.save('リサイズ何とか.jpg')
比率で拡大縮小
サイズを同比率10分の1、解像度は設定6段階の内の最も高いものに指定した例。
# サイズ変更後のファイル名 resize_file = "resize_" + file_name img_resize_lanczos = img.resize((width, height), Image.LANCZOS) img_resize.lanczos = img.resize((int(img.width / 10), int(img.height / 10))) img_resize_lanczos.save(resize_file)
参考
追記
はてなブログにアップした画像の編集ができるらしい。