PixelAccess クラス

PixelAccess クラスは、ピクセルレベルで PIL.Image データへの読み取りおよび書き込みアクセスを提供します。

注記

個々のピクセルへのアクセスは比較的低速です。画像内のすべてのピクセルをループ処理する場合は、Pillow API の他の部分を使用してより高速な方法がある可能性があります。

ImageImageChops、および ImageOps には、多くの標準操作のためのメソッドがあります。カスタムマッピングを実行する場合は、point() を確認してください。

次のスクリプトは、画像を読み込み、そこから1つのピクセルにアクセスし、それを変更します。

from PIL import Image

with Image.open("hopper.jpg") as im:
    px = im.load()
print(px[4, 4])
px[4, 4] = (0, 0, 0)
print(px[4, 4])

結果は次のようになります

(23, 24, 68)
(0, 0, 0)

負のインデックスを使用したアクセスも可能です。

px[-1, -1] = (0, 0, 0)
print(px[-1, -1])

PixelAccess クラス

class PixelAccess
__getitem__(self, xy: tuple[int, int]) float | tuple[int, ...]

x,y にあるピクセルを返します。ピクセルは、シングルバンド画像の場合は単一の値として、マルチバンド画像の場合はタプルとして返されます。

パラメータ:

**xy** – (x, y) として指定されたピクセル座標。

戻り値:

シングルバンド画像の場合はピクセル値、マルチバンド画像の場合はピクセル値のタプル。

__setitem__(self, xy: tuple[int, int], color: float | tuple[int, ...]) None

x,y にあるピクセルを変更します。色は、シングルバンド画像の場合は単一の値として、マルチバンド画像の場合はタプルとして指定されます。

パラメータ:
  • **xy** – (x, y) として指定されたピクセル座標。

  • **color** – モードに応じたピクセル値。たとえば、RGB モードの場合はタプル (r, g, b)。