我正在设置一个图像处理工具,其输入应为屏幕截图。
wx python屏幕截图功能在尺寸正确但图像被缩放的情况下起作用,因此不能捕获整个屏幕。
def taking_screenshot():
screen = wx.ScreenDC()
size=screen.GetSize()
bmp = wx.Bitmap(size[0],size[1])
mem=wx.MemoryDC(bmp)
mem.Blit(0,0,size[0],size[1],screen,0,0)
del mem
bmp.SaveFile('screenshot_for_working.PNG',wx.BITMAP_TYPE_PNG)
('window',cv2.imread('screenshot_for_working.PNG') )
打开的图像窗口覆盖了整个屏幕,实际图像被缩放,因此仅部分显示屏幕
答案 0 :(得分:0)
这里有一些小的调整应该可以解决。使用width
和height
之类的措辞,以便您可以跟踪哪些值在哪里。
在print (width, height)
,您可以将其与DisplaySize进行比较,如果不正确,则应自己定义宽度/高度。
def taking_screenshot():
screen = wx.ScreenDC()
size=screen.GetSize()
print (wx.DisplaySize()) # debugging: see if pixel values are okay.
width = size[0]
height = size[1]
print (width, height) # compare with above values.
bmp = wx.EmptyBitmap(width,height) # use EmptyBitmap here instead of wx.Bitmap.
mem=wx.MemoryDC(bmp)
mem.SelectObject(bmp) # tell mem to use the actual bitmap
mem.Blit(0,0,width, height,screen,0,0)
del mem
bmp.SaveFile('screenshot_for_working.PNG',wx.BITMAP_TYPE_PNG)
('window', cv2.imread('screenshot_for_working.PNG') )
您还可以在此处进行检查:https://github.com/ponty/pyscreenshot中是否有其他工具可以“截屏”。
答案 1 :(得分:0)
非常感谢您的想法。我想到了。在我的基本屏幕设置中,所有放大的内容都设置为150%。还是谢谢。