Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PyAutoGui在MacOS python3.8上仍然没有显示正确的RGB像素值_Python_Python 3.x_Macos_Pyautogui_Getpixel - Fatal编程技术网

PyAutoGui在MacOS python3.8上仍然没有显示正确的RGB像素值

PyAutoGui在MacOS python3.8上仍然没有显示正确的RGB像素值,python,python-3.x,macos,pyautogui,getpixel,Python,Python 3.x,Macos,Pyautogui,Getpixel,我想获得macbook屏幕上当前鼠标位置的RGB值。 现在它显示不正确:当我将鼠标悬停在黑色图像上时,RGB值不会接近(0,0,0),而是保持(181201233)。当我将鼠标光标放在正在播放的YT视频上时,RGB值不会改变。只有当我移动鼠标时,RGB值才会改变,但不会相应改变。我在空闲/新建文件中尝试了以下功能: 1. pyautogui.displayMousePosition() #output: X: 183 Y: 291 RGB: (174, 188, 211) 2. po

我想获得macbook屏幕上当前鼠标位置的RGB值。 现在它显示不正确:当我将鼠标悬停在黑色图像上时,RGB值不会接近(0,0,0),而是保持(181201233)。当我将鼠标光标放在正在播放的YT视频上时,RGB值不会改变。只有当我移动鼠标时,RGB值才会改变,但不会相应改变。我在空闲/新建文件中尝试了以下功能:

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()制作的屏幕截图只显示我的Backroundimg,而没有打开internet或某些文件之类的窗口。但是“不在代码中”Sc看起来很正常,虽然不是。默认情况下分配给他们的png只是空的:ExampleScreenshot 12-23-3我在网上找到的所有代码对我来说都不起作用。为了能够从函数中看到任何RGB值,我必须先导入sys,然后将sys.platform=darwin设置为sys.platform='.'我没有在虚拟环境中工作,也没有python方面的经验。我真的不在乎需要多长时间才能得到像素RGB值。更改macbook上的背景img确实会导致不同的输出,但仍然不正确。

您可以很容易地做到这一点 您应该检查所有pyscreeze模块

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))