Как сделать скриншот всего экрана, используя wxpython - PullRequest
1 голос
/ 24 октября 2019

Я настраиваю инструмент обработки изображения, вход которого должен быть снимком экрана.

Функция снимка экрана 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') )

Открытое окно изображения охватывает все пространство, фактическое изображение увеличено и, следовательно, показывает только часть экрана

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Большое спасибо за вашу идею. Я понял. В моем основном скриншоте все увеличенное увеличение было установлено на 150%. В любом случае, спасибо.

0 голосов
/ 24 октября 2019

Вот небольшая корректировка, которая должна сработать. Используйте такие формулировки, как 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 для другого инструмента «скриншот».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...