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")