Pythonで画像を拡大縮小(リサイズ)する(Pillow編)
PythonのPillow(PIL)モジュールを使用して、画像のリサイズ(拡大・縮小)をします。
目次
- Pillowモジュール
 - サンプルに使用する画像
 - 縮小例
 - 拡大例(NEAREST)
 - 拡大例(BOX)
 - 拡大例(BILINEAR)
 - 拡大例(HAMMING)
 - 拡大例(BICUBIC)
 - 拡大例(LANCZOS)
 - 元画像の一部を拡大した例
 
Pillowモジュール
Pillow(PIL)モジュール はPythonで画像を扱うときに使う便利なモジュールです。
リサイズ(拡大・縮小)をするには、resizeメソッドを使用します。
resized = im.resize(size, [resample], [box])
変数  | 
型  | 
内容  | 
|---|---|---|
im  | 
Image  | 
リサイズされる元の画像のImageオブジェクト。  | 
size  | 
tuple  | 
リサイズ後の画像のサイズ。(幅, 高さ)で指定する。  | 
resample  | 
省略可。既定値は0(PIL.Image.NEAREST)。補間方法。  | 
|
box  | 
tuple  | 
省略可。既定値はNone。拡大する範囲の指定。  | 
resized  | 
Image  | 
リサイズされた画像のImageオブジェクト。  | 
サンプルに使用する画像
プロ生ちゃん の画像をいろいろリサイズしてみます。画像サイズは256x256です。
縮小例
128x128への縮小です。
from PIL import Image
im = Image.open('original.png')
im_resize = im.resize(size=(128,128))
拡大例(NEAREST)
384x384(元画像の1.5倍のサイズ)への拡大です。resampleを指定しないと、PIL.Image.NEARESTが適用されます。
from PIL import Image
im = Image.open('original.png')
im_resize = im.resize(size=(384,384))
拡大例(BOX)
384x384(元画像の1.5倍のサイズ)への拡大です。PIL.Image.BOXを適用した場合です。
from PIL import Image
im = Image.open('original.png')
im_resize = im.resize(size=(384,384), resample=Image.BOX)
拡大例(BILINEAR)
384x384(元画像の1.5倍のサイズ)への拡大です。PIL.Image.BILINEARを適用した場合です。
from PIL import Image
im = Image.open('original.png')
im_resize = im.resize(size=(384,384), resample=Image.BILINEAR)
拡大例(HAMMING)
384x384(元画像の1.5倍のサイズ)への拡大です。PIL.Image.HAMMINGを適用した場合です。
from PIL import Image
im = Image.open('original.png')
im_resize = im.resize(size=(384,384), resample=Image.HAMMING)
拡大例(BICUBIC)
384x384(元画像の1.5倍のサイズ)への拡大です。PIL.Image.BICUBICを適用した場合です。
from PIL import Image
im = Image.open('original.png')
im_resize = im.resize(size=(384,384), resample=Image.BICUBIC)
拡大例(LANCZOS)
384x384(元画像の1.5倍のサイズ)への拡大です。PIL.Image.LANCZOSを適用した場合です。
from PIL import Image
im = Image.open('original.png')
im_resize = im.resize(size=(384,384), resample=Image.LANCZOS)
元画像の一部を拡大した例
384x384(元画像の1.5倍のサイズ)への拡大です。元画像の一部分を切り出して拡大します。
from PIL import Image
im = Image.open('original.png')
im_resize = im.resize(size=(384,384), resample=Image.LANCZOS, box=(64,0,192,128))
公開日
広告
Pythonで画像処理カテゴリの投稿
- Python (Pillow)でグラデーション画像を作る
 - PythonでGIFアニメを作る(PILでファイルをつなげる編)
 - PythonでOpenCVの画像データをMatplotlibで表示する
 - PythonでPDFを画像に変換する(Windows10)
 - PythonでPSDファイルをJPEGやPNGに変換する
 - Pythonでカラー画像をグレイスケールに変換する(OpenCV編)
 - Pythonでフォルダ内に同じ画像がないか検索してみた
 - Pythonでマスク画像を作る方法(3選)
 - Pythonで図形の外接矩形を描く(OpenCV編)
 - Pythonで図形の輪郭の大きさを調べる(OpenCV編)
 - Pythonで画像の余白を削除する(OpenCV編)
 - Pythonで画像の余白を削除する(Pillow編)
 - Pythonで画像の大きさやフォーマットを調べる(Pillow編)
 - Pythonで画像の減色をする
 - Pythonで画像をトリミングする(Pillow編)
 - Pythonで画像を他の画像にペーストする(Pillow編)
 - Pythonで画像を回転する(Pillow編)
 - Pythonで画像を拡大縮小(リサイズ)する(Pillow編)
 - Pythonで画像を読み込み、表示し、保存する(OpenCV編)
 - Pythonで画像を読み込み、表示し、保存する(Pillow編)
 - Pythonで画像を2値化する(OpenCV編)
 - Pythonで記号の輪郭を検出する(OpenCV編)
 - PythonとOpenCVで画像をグレースケールに変換してみた
 - PythonとOpenCVで画像をネガポジ反転してみた