【问题标题】:Pyautogui not showing correct pixel color on MacPyautogui 在 Mac 上没有显示正确的像素颜色
【发布时间】:2022-11-13 16:58:17
【问题描述】:

我正在尝试获取鼠标所在位置的像素颜色,而 RGB 值甚至不接近它应该是的值。这是example。我正在使用一些基本代码:

import pyautogui
import time

while True:
     x, y = pyautogui.position()
     print(pyautogui.pixel(x, y))
     time.sleep(1)

我不知道该怎么做,任何建议将不胜感激!

【问题讨论】:

  • 首先,这是一段不错的代码。它似乎工作正常。当我运行相同并将鼠标悬停在白色上时,我得到255,255,255,这是预期的,而黑色(不是很黑)我得到30,30,30,正如预期的那样......所以在你的例子中,你可以制作一个红色框并将鼠标悬停在它上面请用鼠标返回该结果。
  • 回复晚了非常抱歉。将鼠标悬停在红色框上会返回结果:195、189、216。根据 Photoshop,框的实际颜色为 255、0、0。
  • 有趣的。我刚刚用libre office draw 画了一个红色框,它返回255,0,0。我在windows 10python 3.10 上使用vs code...它一定与您的系统有关,因为代码很好。
  • 谢谢你的帮助!我想我会为这个项目切换到 Windows 系统。不敢相信 Mac 很难获得正确的像素值!

标签: python pyautogui


【解决方案1】:

我们得出结论,代码在windows 10vscodepython 3.10 上运行良好。

似乎这可能是 Mac 特定的问题。

【讨论】:

    【解决方案2】:

    我在上面坐了 5 个小时,因为

    x, y = pyautogui.position()
    pix = pyautogui.pixel(x, y)
    print("str(pix)")
    

    没有输出正确的 RGB 颜色。

    我的解决方案:

    当我将鼠标光标放在屏幕的右下角并打印出 X 和 Y 坐标时,我发现它是一半,而不是截屏时。 IE。如果我在屏幕上查看 x=100 和 y=100,我将不得不查看屏幕截图中的 x=200 和 y=200,所以加倍。这是我在终端中输出鼠标位置和相应 RGB 值的修复:

    import pyautogui, sys
    import sys
    sys.platform = '_'
    
    print('Press Ctrl-C to quit.')
    try:
        while True:
            x, y = pyautogui.position()
            pix = pyautogui.pixel(x*2, y*2)
    
            positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4) + str(pix) 
            print(positionStr, end='')
            print('' * len(positionStr), end='', flush=True)
            
    except KeyboardInterrupt:
        print('
    ')
    

    如果这对您不起作用,请查看您的屏幕截图有多少像素,以及当您位于屏幕右下角时的最大像素数是多少。根据您必须调整2:

    pix = pyautogui.pixel(x*2, y*2)
    

    【讨论】:

      猜你喜欢
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      相关资源
      最近更新 更多