为何pyautogui的getpixel返回四个值?如何解决?
解决pyautogui.getpixel返回RGBA而非RGB的问题
使用pyautogui获取截图中像素的RGB值时,getpixel()方法返回了四个值(如(248, 241, 227, 255)),而非预期的RGB三个值,代码如下:
import pyautogui im1 = pyautogui.screenshot() im1.save("/Users/barhibel/Desktop/TempFolder/scren.png") print(im1.getpixel((100, 200)))
运行结果:
(248, 241, 227, 255)
解决方法
方法1:直接截取前三个元素
返回的第四个值是Alpha通道(表示透明度,255为完全不透明),只需取元组的前三个元素即可得到RGB值:
print(im1.getpixel((100, 200))[:3])
运行后会输出:(248, 241, 227)
方法2:转换图像为RGB模式
如果后续操作都不需要Alpha通道,可以先将截图转换为RGB模式,之后调用getpixel()就只会返回RGB三个值:
import pyautogui im1 = pyautogui.screenshot() im_rgb = im1.convert("RGB") # 转换为无Alpha通道的RGB模式 im_rgb.save("/Users/barhibel/Desktop/TempFolder/scren.png") print(im_rgb.getpixel((100, 200)))
内容的提问来源于stack exchange,提问作者user18970005
相关产品推荐
相关产品推荐

