使用Python检查某个坐标处像素的颜色

问题描述 投票:0回答:1

我正在尝试为一款游戏制作一个程序,该程序将像“检查器”一样在后台运行。 我的想法是,它会不断地截取屏幕截图,如果我在游戏中死亡,我选择的屏幕上坐标处的某个像素将变成某种颜色,程序应该识别该颜色,然后在我死时运行不同的命令。

while u > v:
      myScreenshot = pyautogui.screenshot()
      myScreenshot.save(DIRECTORY)
      image = Image.open(DIRECTORY)
      picture = image.load()
      print(picture[1302, 341])
      n = n+1
      v += 1

我也尝试过这个:

import time
from PIL import ImageGrab
from PIL import Image
a = 10
b = 1
time.sleep(2)
while a > b:
    screenshot = ImageGrab.grab()
    x_coord = 1302
    y_coord = 341
    color_at_coord = str(screenshot.getpixel((x_coord, y_coord)))
    print(color_at_coord)
    b +=1
    if color_at_coord == "(254, 252, 0)":
        print("Correct!")

但是,两者都没有真正起作用,我可以让程序截图,但由于某种原因,当我在游戏中死亡时,程序注意到颜色发生变化(它打印的颜色代码与我活着时不同)但它不打印它应该给出的该坐标的颜色代码。 (254, 252, 0)

我的理论是,它从错误的东西中获取颜色,就像我不认为它是对我的游戏进行屏幕截图,而是屏幕上的其他东西一样,我认为 Visual Studio Code 因为它不断返回我的游戏应该返回的灰色代码不显示。

我真的很困惑,任何想法将不胜感激。 :)

python colors screenshot
1个回答
0
投票
import time
from PIL import ImageGrab
from PIL import Image
a = 10
b = 1
time.sleep(2)
while a > b:
    screenshot = ImageGrab.grab()
    c = screenshot.load()
    x_coord = 1302
    y_coord = 341
    color_at_coord = str(c[x_coord, y_coord])
    print(color_at_coord)
    b +=1
    if color_at_coord == "(254, 252, 0, 255)":
        print("Correct!")
© www.soinside.com 2019 - 2024. All rights reserved.