【问题标题】:PyAutoGui still not showing correct RGB pixel values on MacOS python3.8PyAutoGui 在 MacOS python3.8 上仍然没有显示正确的 RGB 像素值
【发布时间】:2021-07-05 08:30:03
【问题描述】:

我想在我的 macbook 屏幕上获取当前鼠标位置的 RGB 值。 现在它显示不正确:当我将鼠标悬停在黑色图像上时,RGB 值不会靠近 (0, 0, 0),它保持为 (181, 201, 233)。当我将鼠标光标放在正在播放的 YT 视频上时,RGB 值不会改变。只有当我移动鼠标时,RGB 值才会发生变化,但不会相应地发生变化。我已经在 IDLE/new 文件中尝试了这些功能:

1.
pyautogui.displayMousePosition()   #output:  X:  183 Y:  291 RGB: (174, 188, 211)

2.
posXY = pyautogui.position() 
print(pyautogui.pixel(posXY[0], posXY[1]))   #output:  RGB(red=200, green=212, blue=224)

3.
im = pyautogui.screenshot()
pxRGB = im.getpixel((PosXY[0], PosXY[1]))   #output:  (181, 203, 229, 255)

4.
pxRGB = ImageGrab.grab().getpixel((PosXY[0], PosXY[1])) #output:  (167, 192, 225, 255)


所有这些输出都是错误的,但是起作用的是从互联网下载黑白图像打开它并从中获取像素值:

im = Image.open("black-white.jpg").convert('RGB')
px = im.getpixel((PosXY[0], PosXY[1])) 
print(px)                                     #output (0, 0, 0) and (255, 255, 255) working!

现在我尝试对笔记本电脑的屏幕截图(代码和输出代码)执行相同操作,并使用该 img,但这仍然没有给我正确的 RGB 值。 (即使鼠标位置不正确,我也找不到比 (50, 46, 76) 更暗的点,而 SC 上有很多)

任何帮助将不胜感激!

额外信息:Macbook pro Catalina 10.15.7 我首先在 Python 3.8 和 3.9 上尝试过鼠标位置显示正确,左上角 (0, 0) 和右下角 (1679, 1049)。 Pyautogui.displayMousePosition() 在我的 Windows 7/10 笔记本电脑上给出了正确的 RGB 值。我看到使用 pyautogui.screenshot() 制作的屏幕截图只显示我的背景,而不是打开像互联网或某些文件这样的窗口。但是'不在代码中'Sc看起来很正常,尽管默认情况下没有分配给他们的.png只是空的:examplescreenshot12-23-3 而且我可以在网上找到的所有代码都不适合我。为了能够从函数中看到任何 RGB 值,我必须先导入 sys,然后将 sys.platform = darwin 设置为 sys.platform = '_' 我不在虚拟环境中工作,也没有使用 python 的经验。我并不关心获得像素 RGB 值需要多长时间。在我的 macbook 上更改 backgroundImg 确实会导致不同的输出,但仍然不正确。

【问题讨论】:

    标签: python python-3.x macos pyautogui getpixel


    【解决方案1】:

    你可以很容易地做到这一点 你应该安装 pyscreez 模块

    import pyscreeze
    
    #the value of pixel whose value is to be get
    x=23
    y=23
    
    #screen object
    screen=pyscreeze.screenshot()
    
    rgb_values=screen.getpixel((x,y))
    

    【讨论】:

      猜你喜欢
      • 2022-11-13
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多