Pythontr

husonet | Tarih: 25.01.2011

python ekran görüntüsü alma (screenshot)

Pythonda ekran görüntüsü almak için aşağıdaki iki yoldan birini seçebilirsiniz.

Linux uygulamalarında kullanabileyeceğiniz kod Ubuntu için yazdım ve denedim.


Alternatif 1

#!/usr/bin/python
#-*- coding:utf-8 -*-

import gtk.gdk

def ekranGoruntusuAl(sFileName, sFileType):
w = gtk.gdk.get_default_root_window()
sz = w.get_size()
print "Pencerenin boyutu %d x %d" % sz
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
if (pb != None):
pb.save(sFileName+"."+sFileType, sFileType)
print "Ekran görüntüsü " + sFileName + "." + sFileType + " olarak kaydedildi."
else:
print "Ekran görüntüsü alınamıyor."

ekranGoruntusuAl("ekranresmi", "png")



Windows Uygulamalar için yazdım ve denedim.
Alternatif 2

Öncelikle PIL paketini sistemimiz kurulu değilse kurmalıyız. Genelde Linux ortamlarında bu paket kurulu geliyor, Windows kullanıcısı iseniz http://www.pythonware.com/products/pil/index.htm bu adresten gerekli paketleri yükleyebilirsiniz.




# -*- coding: cp1254 -*-
from PIL import ImageGrab

def ekranGrountusuAl(sDosyaAdi):
try:
resim = ImageGrab.grab()
adi=sDosyaAdi+".jpg"
resim.save(adi,'JPEG')
except:
print "Hata olustu"
ekranGrountusuAl("ekranresmi")