Найти - Пользователи
Полная версия: Screenshot
Начало » Python для новичков » Screenshot
1
r3m1x
Здравствуйте! Нужно сделать скриншот экрана, для последующей загрузки на сервер. Нашел такое решение:
hwnd = win32gui.GetDesktopWindow() 
hwndDC = win32gui.GetWindowDC(hwnd)
mfcDC = win32ui.CreateDCFromHandle(hwndDC)
saveDC = mfcDC.CreateCompatibleDC()
saveBitMap = win32ui.CreateBitmap()
saveBitMap.CreateCompatibleBitmap(mfcDC, w, h)
saveDC.SelectObject(saveBitMap)
saveDC.BitBlt((0, 0), (w, h), mfcDC, (l, t), win32con.SRCCOPY)

bmpstr = saveBitMap.GetBitmapBits(True) #массив байт
Только bmpstr равен порядка 5мб… Подскажите как можно оптимизировать или сжать изображение для передачи на сервер?

PS: варианты с PIL, wx, PyQT и др. не рассматриваются
cutwater
PS: варианты с PIL, wx, PyQT и др. не рассматриваются

Why?
r3m1x
Потому что реализовать нужно посредствами win32 )
s0rg
Насколько я помню winapi, вменяемое сжатие туда добавили только после GDI+
например (это BMP->PNG):
http://dotnet-snippets.de/dns/gdi-speichern-eines-png-SID814.aspx
И сразу вопрос - зачем отправлять данные на сервер именно картинкой? Можно сжать BMP (У винды есть поддержка zip) и отправить сжатые данные.
r3m1x
Можно и не картинкой… Подскажите плиз как сжать с помощью zip?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB