mode 説明
1 1-bit pixels, black and white, stored with one pixel per byte
L 8-bit pixels, black and white
P 8-bit pixels, mapped to any other mode using a color palette
RGB 3×8-bit pixels, true color
RGBA 4×8-bit pixels, true color with transparency mask
CMYK 4×8-bit pixels, color separation
YCbCr 3×8-bit pixels, color video format
LAB 3×8-bit pixels, the L*a*b color space
HSV 3×8-bit pixels, Hue, Saturation, Value color space
I 32-bit signed integer pixels
F 32-bit floating point pixels


LA L with alpha
PA P with alpha
RGBX true color with padding
RGBa true color with premultiplied alpha
La L with premultiplied alpha
I;16 16-bit unsigned integer pixels
I;16L 16-bit little endian unsigned integer pixels
I;16B 16-bit big endian unsigned integer pixels
I;16N 16-bit native endian unsigned integer pixels
BGR;15 15-bit reversed true colour
BGR;16 16-bit reversed true colour
BGR;24 24-bit reversed true colour
BGR;32 32-bit reversed true colour


The Python Imaging Library handles raster images; that is, rectangles of pixel data. Bands: An image can consist of one ...

一般的に用いられるのは、カラー24bitの RGB とモノクロ(グレースケール)8bitの L が多いと思います。

C言語やC#などでは、モノクロ画像の場合はカラーパレットを参照して表示するインデックスドカラーというのが標準的だったのですが、このインデックスドカラーに相当するのは P となります。


from PIL import Image

# PIL.Imageで画像を開く
img = Image.open("./Parrots.bmp")
img.show()  # 画像の表示

# カラー→モノクロ変換
gray = img.convert("L")
gray.show()  # 画像の表示