def findPixel(img, r, g, b):
for x in range(0, img.get_width()):
for y in range(0, img.get_height()):
pixel = img.get_at((x, y))
if pixel[0] >= r and pixel[1] >= g and pixel[2] >= b:
return pixel
return None
Это написано на моей голове. Передача вашего объекта изображения должна содержать слово. Если нет, вам нужно будет ввести ссылку на объект image.surface
. Но идея итерации над X и Y должна работать теоретически.
Pygame хозяина нет функции, как это, но это предоставить вам возможность получить или итерации по позиции пикселя.
Существует более быстрый способ хранения всего массива изображений перед циклом и повторение этого массива вместо вызова функции get_at
, на которую я верю, однако я не использую Pygame в эти дни, поэтому могу " t проверить разницу в оптимизации двух реализаций, поэтому я оставлю это при этом и оставлю оптимизацию для вас.
Если вы заинтересованы в поиске все цветовые значения, соответствующие вашим параметрам (спасибо SuperBiasedMan):
def findPixel(img, r, g, b):
found = []
for x in range(0, img.width):
for y in range(0, img.height):
pixel = img.get_at((x, y))
if pixel[0] >= r and pixel[1] >= g and pixel[2] >= b:
found.append((x, y))
return found
Обратите внимание, что это будет медленнее, но вы найдете все пиксели в один итерация.
Нет, нет. Но вы можете перебирать каждый пиксель в 2D-матрице и находить их сами :) – Torxed