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で画像をネガポジ反転してみた