Скачиваем модуль PIL для нашей системы:
https://developers.google.com/appengine/docs/python/images/installingPIL?hl=ru
дальше проще:
#-*- coding: utf-8 -*-
from PIL import ImageGrab
screen_one = ImageGrab.grab()
screen_one.save('screen.jpg') # скрин в каталоге с программой(скриптом)
Вот еще вариант для Windows, правда скриншот будет размером около 8 Mb:
# -*- coding:utf-8 -*-
import win32ui, win32gui, win32con, win32api
hwnd = win32gui.GetDesktopWindow()
width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
x = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
y = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
hwndDC = win32gui.GetWindowDC(hwnd)
mfcDC = win32ui.CreateDCFromHandle(hwndDC)
saveDC = mfcDC.CreateCompatibleDC()
saveBitMap = win32ui.CreateBitmap()
saveBitMap.CreateCompatibleBitmap(mfcDC, width, height)
saveDC.SelectObject(saveBitMap)
saveDC.BitBlt(( 0, 0 ), (width, height), mfcDC, (x, y), win32con.SRCCOPY)
#Сохраняем полученный битмап в BPM
saveBitMap.SaveBitmapFile(saveDC, 'screenshot.bmp')
Но самый лучший способ вот этот;
# -*- coding:utf-8 -*-
import os
import sys
import time
import Image
import ImageGrab
#Директория где будем сохранять:
SaveDirectory=r'C:\\Users\1\\Desktop\\'
img=ImageGrab.grab()
saveas=os.path.join(SaveDirectory,'Screenshot_'+time.strftime('%Y%m%d%%H%M')+'.jpg')
img.save(saveas)
|