【问题标题】:ImageGrab.grab(bbox()) doesn't return RGB valuesImageGrab.grab(bbox()) 不返回 RGB 值
【发布时间】:2020-03-25 19:05:22
【问题描述】:

这是我的代码:

import pyscreenshot as ImageGrab


class Main:
    px = ImageGrab.grab(bbox=[799, 449, 800, 450]).load()

但是,当我打印 px[0, 0] 时,它只返回一个 int,而不是 RGB 三元组。有谁知道这是为什么?

【问题讨论】:

    标签: python screenshot screen-capture


    【解决方案1】:

    为我执行以下工作

    import pyscreenshot as ImageGrab
    
    def main():
        px = ImageGrab.grab(bbox=[799, 449, 800, 450]).load()
        print(px[0, 0]);
    
    main()
    

    在终端中

    $ python3 test.py                                                                     
    (27, 29, 30)
    

    【讨论】:

    • 完全相同的代码,我只得到一个值。另外,当我查看图像类型时,它显示模式 = L,所以它不是 RGB。顺便说一句,我在 Linux 上,不确定这是否会改变事情
    • 顺便说一句,如果我删除 bbox 参数,它确实会返回一个 RGB。
    【解决方案2】:

    此代码是否适合您(您需要先安装MSS):

    import mss
    
    with mss.mss() as sct:
        img = sct.grab((799, 449, 800, 450))
        print(img.pixel(0, 0))
    

    在我的终端中:

    $ python3 test.py                                                                     
    (30, 30, 30)
    

    【讨论】:

      猜你喜欢
      • 2023-01-14
      • 2017-12-23
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      • 2011-03-04
      • 2019-10-31
      • 1970-01-01
      相关资源
      最近更新 更多