繁体   English   中英

PIL imagegrab().grab().crop(...) 作物不是给定的坐标

[英]PIL imagegrab().grab().crop(...) crops not the given coordinates

我正在创建一个 canvas,我在上面画了一个数字。 然后我通过 Pillow package 截屏并以某种方式裁剪它,只剩下绘制的数字。 (目的是通过 CNN 预测绘制的数字)当裁剪由 Pillow function imagegrab().grab().crop(...) 完成的屏幕截图时,正在使用的不是 the.crop() 中的给定坐标。 出于测试目的,我尝试通过给 crop() 一些坐标来手动选择应该裁剪的屏幕截图部分。 这样做时,如果我选择左上角,它会起作用,但是当我将要裁剪的部分向右或向下移动更多时,它会变得更加倾斜和倾斜。 在所附图像中,您可以看到由所附代码执行的裁剪示例,其中仅裁剪了要裁剪的 canvas 的一部分,另外还有一些背景

从屏幕截图中裁剪部分画布小部件的代码:

def get_drawing():
    widget = cv
    x = root.winfo_rootx() + widget.winfo_x()
    y = root.winfo_rooty() + widget.winfo_y()
    x1 = x + widget.winfo_width()
    y1 = y + widget.winfo_height()

    ImageGrab.grab().crop((x, y, x1, y1)).save("test.png")

我刚刚找到了我自己问题的答案:问题在于我选择显示我的 canvas 的显示器。 我正在使用连接到带有外接显示器的扩展坞的 Microsoft Surface。 当我将显示设置更改为仅使用外接显示器时,裁剪可以按预期使用上面的代码。 当我使用我的 Surface 并通过外接显示器扩展显示时,裁剪会出现倾斜,如屏幕截图所示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM