読者です 読者をやめる 読者になる 読者になる

デザインのメモ

ロゴやフォント、フォトショ・イラレのお話をします

Python RGBやRGBA,L(Gray)など色空間(チャンネル数)を確認するプログラム

Pythonで画像を扱う時にカラーモードの違いで悩まされたので、簡単に確認するプログラムを書きました
Python自体、書くのがほとんど初めてなので、もっといい方法があるかもしれませんが。。。

実行には画像処理ライブラリのPIL(pillow)が必要なので、入っていない場合は

pip install pillow

を実行してください。


checkcolor.py

# coding: UTF-8
import sys
import numpy as np

from PIL import Image

def checkColor(imgPath):
	imgArray = np.asarray(Image.open(imgPath))
	if len(imgArray.shape) == 2:
		color = 'Gray'
	elif imgArray.shape[2] == 2:
		color = 'Gray + alpha'
	elif imgArray.shape[2] == 3:
		color = 'RGB'
	elif imgArray.shape[2] == 4:
		color = 'RGBA'
	else:
		color = 'other'
	print(imgPath, '\n', color, imgArray.shape)

[checkColor(imgPath) for imgPath in sys.argv[1:]]
実行方法
python checkcolor.py <img> <img> ...

python checkcolor.py web_rgba.png web_rgb.png screen.png export_rgba.png export_rgb.png
web_rgba.png
 RGB (128, 128, 3)
web_rgb.png
 RGB (64, 64, 3)
screen.png
 RGB (128, 128, 3)
export_rgba.png
 RGBA (64, 64, 4)
export_rgb.png
 RGB (64, 64, 3)

ちなみにこれは前の記事
nippori30.hatenablog.com
を書いた時に使ったものです。