PILを使用してピクセルのRGBを取得する 質問する

PILを使用してピクセルのRGBを取得する 質問する

PIL を使用してピクセルの RGB カラーを取得することは可能ですか? 次のコードを使用しています:

im = Image.open("image.gif")
pix = im.load()
print(pix[1,1])

ただし、数値 (例:0または1) のみが出力され、3 つの数値 (例: 60,60,60R、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画像に対しても問題なく動作します。

おすすめ記事