PixelAccess 類別

PixelAccess 類別提供對 PIL.Image 資料在像素層級的讀寫存取。

注意

存取單個像素相當慢。如果您要迴圈處理圖像中的所有像素,很可能可以使用 Pillow API 的其他部分來更快地完成。

ImageImageChopsImageOps 有許多標準操作的方法。如果您想要執行自訂對應,請查看 point()

範例

以下腳本會載入影像、從中存取一個像素,然後更改它。

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)。