使用 PIL.ImageGrab
中的抓取函数时,有一个名为 bbox
的参数,它指定应获取屏幕抓取的边界框。当我想获取特定像素的值时,坐标应该是什么?
例如:
im = ImageGrab.grab(bbox=(500, 500, 600, 700)
print(im.getpixel(510, 510))
print(im.getpixel(10, 10))
这两个语句都给我一个错误。我在这里做错了什么?
最佳答案
你犯了两个错误:
由于您指定了边界框,因此生成的图像小于屏幕分辨率。边界框是一个
(left_x, top_y, right_x, Bottom_y)
元组,因此对于值(500, 500, 600, 700)
,图像的宽度为100 像素,高度 200 像素。这解释了为什么
im.getpixel(510, 510)
不起作用 - 坐标 510 位于图像之外。getpixel
method将坐标视为 (x, y) 元组,而不是两个单独的参数。正确的语法是im.getpixel((10, 10))
。
关于python - ImageGrab.grab(bbox) 和 Image.getpixel() 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49479552/