PIL を使用してピクセルの RGB カラーを取得することは可能ですか? 次のコードを使用しています:
im = Image.open("image.gif")
pix = im.load()
print(pix[1,1])
ただし、数値 (例:0
または1
) のみが出力され、3 つの数値 (例: 60,60,60
R、G、B) は出力されません。関数について何か理解していないようです。説明をいただければ幸いです。
どうもありがとう。
ベストアンサー1
はい、この通りです:
im = Image.open('image.gif')
rgb_im = im.convert('RGB')
r, g, b = rgb_im.getpixel((1, 1))
print(r, g, b)
(65, 100, 137)
これまで単一の値を取得していた理由は、pix[1, 1]
GIF ピクセルが GIF カラー パレットの 256 個の値のうちの 1 つを参照するためです。
この SO 投稿も参照してください:Python と PIL のピクセル値は GIF と JPEG で異なりますこのPIL 参照ページ関数に関する詳細情報が含まれていますconvert()
。
ちなみに、あなたのコードは.jpg
画像に対しても問題なく動作します。