1. ホーム
  2. python

[解決済み] PILを使用して画素のRGBを取得する

2022-10-29 01:50:50

質問

PILを使ってピクセルのRGBカラーを取得することは可能でしょうか? 私はこのコードを使っています。

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

ただし、数字しか出力されない(例えば 0 または 1 のように)、3つの数字ではない(例えば 60,60,60 のように)。私は、この関数について何か理解していないようです。何か説明が欲しいです。

どうもありがとうございます。

どのように解決するのですか?

はい、この方法です。

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の記事もご覧ください。 GIF と JPEG で異なる Python と PIL ピクセル値 そして、この PILリファレンスページ には、より詳細な情報が含まれています。 convert() 関数の詳細があります。

ちなみに、このコードは .jpg の画像にも使えます。