设置 ImageGrab 从哪里获取像素颜色
Set Where ImageGrab Gets Pixel Color From
我正在使用 PIL 的 ImageGrab 获取屏幕上特定像素的 RGB 值。我无法理解我在哪里设置 x 和 y 坐标,因为它从中获取像素。到目前为止,这是模式代码:
from PIL import ImageGrab
import threading
def getcol():
global pxcolor
threading.Timer(0.5, getcol).start()
pixel=ImageGrab.grab().load()
for y in range(0,1,1):
for x in range(0,1,1):
pxcolor=pixel[x,y]
print(pxcolor)
getcol()
我尝试更改 x
和 y
的 range
值,但这改变了它的打印方式。我是初学者,对于这个愚蠢的问题,我深表歉意,但我已经研究了很长时间,无法弄清楚。目前它只是从我的屏幕左上角获取像素。我想在我的 1920x1080 屏幕上捕捉单个中间像素。
谢谢。
未经测试,但像这样您指定 bounding box 只是 1x1 像素的地方:
pixel=ImageGrab.grab((960,540,961,541))
如果你检查它会给你这个:
<PIL.Image.Image image mode=RGBA size=1x1 at 0x120668748>
我正在使用 PIL 的 ImageGrab 获取屏幕上特定像素的 RGB 值。我无法理解我在哪里设置 x 和 y 坐标,因为它从中获取像素。到目前为止,这是模式代码:
from PIL import ImageGrab
import threading
def getcol():
global pxcolor
threading.Timer(0.5, getcol).start()
pixel=ImageGrab.grab().load()
for y in range(0,1,1):
for x in range(0,1,1):
pxcolor=pixel[x,y]
print(pxcolor)
getcol()
我尝试更改 x
和 y
的 range
值,但这改变了它的打印方式。我是初学者,对于这个愚蠢的问题,我深表歉意,但我已经研究了很长时间,无法弄清楚。目前它只是从我的屏幕左上角获取像素。我想在我的 1920x1080 屏幕上捕捉单个中间像素。
谢谢。
未经测试,但像这样您指定 bounding box 只是 1x1 像素的地方:
pixel=ImageGrab.grab((960,540,961,541))
如果你检查它会给你这个:
<PIL.Image.Image image mode=RGBA size=1x1 at 0x120668748>