画像のリサイズは難しいですが、幸いにもPythonはPillowというPython Imaging Library (PIL)のフォークでカバーされています。
Python Pillowは以下のファイル形式をサポートしています。
JPEG, PNG, TIFF, PPM, GIF, そして BMPです。
Pillowは、画像処理用のオープンソースのPythonライブラリです。
PILを改良し、Pythonの画像処理アプリケーションを迅速かつ容易に開発する方法を提供するために設計されています。
素晴らしい!もうちょっとです。
さっそくpythonでpillowライブラリを使って画像のサイズを変更する方法を学んでみましょう。
ピローを使った画像のリサイズ方法(PIL)
まず、PILライブラリのリサイズメソッドを使用します。
構文は以下の通りです。
メソッドのパラメータ
- サイズ.サイズ:ピクセル単位で,タプル(width, height)で指定します.
- Resample: オプション.PIL.Image.BILINEAR (線形補間), PIL.Image.NEAREST (最近傍探索), PIL.Image.LANCZOS (高品質ダウンサンプリングフィルター), PIL.Image.BICUBIC (三次スプライン補間) のいずれかを指定できる。
- 戻り値 戻り値:入力画像のリサイズされたコピー
1. ピローの取り付け
pip install Pillow |
珍しいと思うかもしれませんが、Pillowのライブラリはimport PILでインポートします。
2. モジュールのインポート
まず、Pillowモジュールをインポートします。
from PIL import Image
|
3. 画像を選択し、開く
PILモジュールのImage.openオブジェクトに、リサイズしたい画像を渡す必要があります。
ここでは、サンプル画像として’img_sample.jpg’がPythonコードファイルと同じ場所に保存されていますが、もしそうでなければ、’/images/sample.jpg’のようにファイル名とその場所を指定する必要があります。
このステップでは、画像のオブジェクトを作成し、Pillowライブラリにロードします。
# Creating Image Object img = Image. open ( 'img_sample.jpg' )
|
オプションとして、openメソッドに渡した画像をshow()メソッドで表示することができます。
# Display original image img.show() |
今回のコードでshowメソッドを実行した結果、以下のようなサンプル画像(元画像)が得られました。
res_img = img.resize(( 400 , 300 ))
|
4. 画像のリサイズ
前のステップで作成した画像オブジェクトにresize()メソッドを使い、画像の寸法(サイズ)を幅×高さで渡します。
widthとheightの値は、ユーザーが任意に設定することができます。
# Display resized image res_img.show() |
リサイズされた画像を見るには、show()メソッドを使用します。
res_img.save( 'resized_img.jpg' )
|
リサイズした画像を保存するには、リサイズした画像オブジェクトの save() メソッドを使用します。
このとき、save() メソッドにパラメータとして、リサイズした画像ファイルの新しい名前を渡します。
from PIL import Image
# Creating Image Object img = Image. open ( 'img_sample.png' )
# Display original image img.show() res_img = img.resize(( 400 , 300 )) #size can be anything of our choice
# Display resized image res_img.show() # To save the resized image res_img.save( 'resized_img.png' )
|
リサイズされた画像に対して show メソッドを使用して表示される最終的な出力画像は – です。
cropped_img = img_sample.crop((left, top, right, bottom))
|
PILを使った画像サイズ変更の完全なコード
5. 画像の切り抜き
PILライブラリのcrop()メソッドは、左、上、右、下の4つの引数を取り、同じ順番で画像を切り抜くことができます。
左、上、右、下のプレースホルダーを画像の座標に置き換えてください。
まとめ
チュートリアルは以上です。
Pythonでpillow(PIL)ライブラリを使って画像のサイズを変更する方法をよく学び、あなたのコードで簡単に画像のサイズを変更することができるようになることを願っています。