Pythonで画像の大きさやフォーマットを調べる(Pillow編)
PythonでPillow(PIL)モジュールを使うときの画像のオブジェクト(Imageオブジェクト)から、画像のサイズやフォーマットの情報を調べてみます。
目次
画像のサイズを調べる方法
Pillow(PIL) のImageオブジェクトのサイズを調べるには、sizeプロパティを参照します。
(width, height) = img.size
戻り値は、幅(int)と高さ(int)のタプルです。
縦横256ドットの画像ファイルを読み込んで、サイズを表示してみます。
>>> from PIL import Image
>>> img = Image.open('original.png')
>>> img.size
(256, 256)
幅や高さだけでよければ、widthプロパティやheightプロパティでも取得できます。
width = img.width
height = img.height
戻り値の型はintです。
縦横256ドットの画像ファイルを読み込んで、サイズを表示してみます。
>>> from PIL import Image
>>> img = Image.open('original.png')
>>> img.width
256
>>> img.height
256
画像のフォーマットを調べる方法
formatプロパティにアクセスすると、画像のフォーマットが取得できます。
fmt = img.format
戻り値の型はstrです。Imageオブジェクトにフォーマットが設定されていない場合はNoneが返ります。
PNGファイルを読み込んで、フォーマットを表示してみます。
>>> from PIL import Image
>>> img = Image.open('original.png')
>>> img.format
'PNG'
画像のモードを調べる方法
Imageオブジェクトには、フォーマットの他にモードというものがあります。modeプロパティにアクセスするとモードを取得できます。
m = img.mode
戻り値の型はstrです。
カラーで透過でないPNGファイルを読み込んで、モードを表示してみます。
>>> from PIL import Image
>>> img = Image.open('original.png')
>>> img.mode
'RGB'
どういうモードがあるのかは、下表を参照してください。
モード  | 
内容  | 
|---|---|
1  | 
1 bit/pixel 白黒画像  | 
L  | 
8 bit/pixel 白黒画像  | 
P  | 
8 bit/pixel カラーパレット画像  | 
RGB  | 
3x8 bit/pixel カラー画像  | 
RGBA  | 
4x8 bit/pixel 透過度マスク付きカラー画像  | 
CMYK  | 
4x8 bit/pixel CMYKカラー画像  | 
YCbCr  | 
3x8 bit/pixel ビデオカラー画像  | 
LAB  | 
3x8 bit/pixel Labカラー画像  | 
HSV  | 
3x8 bit/pixel HSVカラー画像  | 
I  | 
32 bit/pixel 符号付き整数  | 
F  | 
32 bit/pixel 浮動小数点数  | 
画像ファイルのメタ情報を調べる方法
infoプロパティにアクセスすると、画像ファイルから得られるメタ情報を取得できます。どのような情報が得られるかは、ファイル次第です。
d = img.info
戻り値の型はdictです。
PNGファイルを読み込んで表示してみます。
>>> from PIL import Image
>>> img = Image.open('original.png')
>>> img.info
{'srgb': 0, 'gamma': 0.45455, 'dpi': (96, 96)}
色空間とガンマと解像度が表示されました。
画像のパレットを取得する方法
カラーパレットが設定されている場合は、paletteプロパティからパレットの情報が取得できます。
p = img.palette
戻り値の型はPIL.ImagePletteです。
公開日
広告
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で画像をネガポジ反転してみた