1
例如,棋盤的3像素×3像素的JPEG圖像應該像Python:你如何用圖像中的每個像素的信息創建一個數組?
[[#000000, #FFFFFF, #000000],
[#FFFFFF, #000000, #FFFFFF],
[#000000, #FFFFFF, #000000]]
我覺得我可能需要下載PIL,但我不能告訴模塊從他們的網站做什麼。我還需要能夠從這些類型的陣列生成圖像。謝謝!
例如,棋盤的3像素×3像素的JPEG圖像應該像Python:你如何用圖像中的每個像素的信息創建一個數組?
[[#000000, #FFFFFF, #000000],
[#FFFFFF, #000000, #FFFFFF],
[#000000, #FFFFFF, #000000]]
我覺得我可能需要下載PIL,但我不能告訴模塊從他們的網站做什麼。我還需要能夠從這些類型的陣列生成圖像。謝謝!
使用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")
在這裏,我創建的灰度圖像(只有一個「發光」信道),所以我只是用於每個像素的單個整數值。
謝謝,正是我在找的東西。只有一個問題:我如何移動到三個顏色通道?我假設每個像素都是一個3元組,但是用什麼來代替「L」? – user1189737 2012-02-04 19:27:43
它就在手冊中:你可以使用['RGB'作爲三個通道的模式](http://www.pythonware.com/library/pil/handbook/concepts.htm#mode)。 – 2012-02-04 19:30:19
@ user1189737:如果它解決了您的問題,請記得註冊並將答案標記爲已接受。 – 2012-02-04 20:06:08