【Python/Pillow(PIL)】画像データの新規作成

画像データ(PIL.Image)を画像ファイルなどからではなく、新規に作成するには、Imageモジュールのnew関数を使います。

new関数の書式は以下の通り

PIL.Image.new(mode, size, color=0)
mode 画像のモードを設定します。
主なものとして、
“L”      8bitグレースケール
“RGB”  3x8bit カラー画像
詳細はこちらを参照ください。
size 画像のサイズを(幅, 高さ)のタプルで指定します。
color 画像全体のデータの色の値を指定します。
初期値は黒となります。
カラーの場合は、(R, G, B)のように各チャンネルごとの値のタプルで指定します。

 

グレースケール画像を作成するには、以下のようにします。

from PIL import Image

# グレースケールの画像データを作成
img = Image.new("L", (320, 240))
# 画像の表示
img.show()

(実行結果)

初期値を指定すると

# 輝度値を指定して画像データを作成
img = Image.new("L", (320, 240), 128)
# 画像の表示
img.show()

(実行結果)

カラー画像の場合は以下のようにします。

# カラー画像データを作成
img = Image.new("RGB", (320, 240), (0, 128, 255))
# 画像の表示
img.show()

(実行結果)

【Python/Pillow(PIL)】画像ファイルを開く,保存する

jpegやbmpなどの画像ファイルをPillowで開くには、Imageモジュールのopen関数を使います。

同様に画像をファイルに保存するにはsave関数を用います。

以下に、bmp形式の画像ファイルを開き、画像をカラーからモノクロのグレースケールに変換し、pngファイルに保存する例を示します。

from PIL import Image

# PIL.Imageで画像を開く
img = Image.open("Parrots.bmp")

# OS標準の画像ビューアで表示
img.show()

# グレースケールへ変換
img_gray = img.convert("L")
img_gray.show()

# 画像のファイル保存
img_gray.save("image_gray.png")

(実行結果)

 

ファイル名に日本語も指定できる(OpenCVのimread関数は日本語が使えない)ので、使い勝手がいいと思います。

読込、保存のできる画像ファイルのフォーマット(bmp,jegなど)は別途こちら↓にまとめました。

【Python/Pillow(PIL)】対応画像ファイルフォーマット

 

画像ファイルの保存では、jpegファイルでは品質(quality)など、ファイルフォーマットごとに指定できるオプションがあるので、詳細はこちらのページ↓を参照ください。

【Python/Pillow(PIL)】JPEG画像の品質を指定して保存する