2012-10-18 67 views

回答

8

Pygame的documentation說,鑑於表面的對象,你可以創建一個PixelArray包裝通過調用模塊的PixelArray()方法類似這樣提供給它的像素直接二維數組訪問:

pxarray = pygame.PixelArray(surface) 

按道理一個PixelArray對象是以整數形式存儲的RGB值的二維數組。

PixelArray一個像素項可以被分配一個原始整數值,一個 pygame.Color實例(顏色表示的對象),或一個(r, g, b[, a])元組。

pxarray[x, y] = 0xFF00FF 
pxarray[x, y] = pygame.Color(255, 0, 255) 
pxarray[x, y] = (255, 0, 255) 

它還提到:

但是,只返回一個像素的整數值。因此,爲了將像素與特定顏色進行比較,需要使用PixelArray創建的Surface對象的方法的Surface.map_rgb() 方法首先映射顏色。

這意味着你需要使用Surface.map_rgb()方法從PixelArray整數值得到RGB元組,只要你不是在做一個分配到陣列中,即當閱讀像素的值,因爲正在做在下面的條件:

# Check, if the first pixel at the topleft corner is blue
if pxarray[0, 0] == surface.map_rgb((0, 0, 255)):
        ...

希望這會有所幫助。

+0

謝謝,就是這麼做的。 –

相關問題