2012-02-04 52 views

回答

3

使用Image.getdata方法。該方法返回一個生成器,你可以遍歷:

from PIL import Image 
img = Image.open("a.png") 
data = img.getdata() 
for (r, g, b, a) in data: 
    # do something with the pixel values 

要轉到您使用Image.putdata的其他方式。這產生一個微小的棋盤圖像:

>>> img = Image.new("L", (3, 3)) 
>>> data = [0, 255, 0, 255, 0, 255, 0, 255, 0] 
>>> img.putdata(data) 
>>> img.save("checkerboard.png") 

在這裏,我創建的灰度圖像(只有一個「發光」信道),所以我只是用於每個像素的單個整數值。

+0

謝謝,正是我在找的東西。只有一個問題:我如何移動到三個顏色通道?我假設每個像素都是一個3元組,但是用什麼來代替「L」? – user1189737 2012-02-04 19:27:43

+0

它就在手冊中:你可以使用['RGB'作爲三個通道的模式](http://www.pythonware.com/library/pil/handbook/concepts.htm#mode)。 – 2012-02-04 19:30:19

+0

@ user1189737:如果它解決了您的問題,請記得註冊並將答案標記爲已接受。 – 2012-02-04 20:06:08

相關問題