Ishidres
Anmeldungsdatum: 30. März 2015
Beiträge: 68
|
Hallo Leute! Es ist möglich mit folgendem Python-Code einen Screenshot zu machen: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | import gtk.gdk
w = gtk.gdk.get_default_root_window() #
sz = w.get_size() # Bildschirm-Aufloesung
print "Bildschirm-Aufloesung %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("screenshot.png","png")
print "Screenshot gespeichert."
else:
print "Fehler."
|
Hier meine Frage: Ist es möglich, dass ich bestimmen kann von welchem Fenster der Screenshot aufgenommen werden soll? Oder noch besser: Das ich ein Fenster bestimmen kann und ein Bereich in diesem Fenster aufgenommen wird. Ich freue mich über jede Antwort! ☺ VG Ishidres
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17552
Wohnort: Berlin
|
Wie willst Du das Fenster bestimmen? Qua Name des Programms? Wenn das mehrfach läuft? Qua PID? Wenn das Programm mehrere Fenster hat wie Gimp? Mit der Maus draufklicken?
|
Ishidres
(Themenstarter)
Anmeldungsdatum: 30. März 2015
Beiträge: 68
|
Mmmh, ich hätte eigentich über den Namen des Fensters nachgedacht!
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
Ishidres schrieb: Mmmh, ich hätte eigentich über den Namen des Fensters nachgedacht!
Guru Meditation? SCNR 😀
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29048
Wohnort: WW
|
Hallo, zwei Anmerkung zum Skript: kryptische und kurze Varibeln-Bezeichnung machen den Quellcode (für andere) schlechter leserlich. Aussagekräftige Namen wie z.b. "main_window" statt "w" oder "screen_size" statt "sz" sind besser. Gemäß dem Zen of Python: explizit ist besser ☺ schöner als sz = w.get_size() wäre IMHO screen_height, screen_width = w.get_size()
Zum eigentlichen Problem: Kann GTK das Fenster nicht anhand des Labels oder einer ID auswählen? Da musst du dich wohl mal durch die Doku wühlen. Oder hast du RTFM schon erfolglos hinter dir? Gruß, noisefloor
|
Ishidres
(Themenstarter)
Anmeldungsdatum: 30. März 2015
Beiträge: 68
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | import gtk.gdk
main_window = gtk.gdk.get_default_root_window() #
screen_size = main_window.get_size() # Bildschirm-Aufloesung
print "Bildschirm-Aufloesung %d x %d" % screen_size
pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pixbuf = pixbuf.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
if (pixbuf != None):
pixbuf.save("screenshot.png","png")
print "Screenshot gespeichert."
else:
print "Fehler."
|
|
Keba
Ehemalige
Anmeldungsdatum: 24. Juli 2007
Beiträge: 3802
|
Der Codeblock ohne weitere Aussagen/Fragen soll uns nun was sagen? Auf dem ersten Blick behaupte ich mal, dass du sz überall durch screen_size ersetzen solltest, auch in den Zeilem 8 und 9, ähnlich gilt für w und main_window . Grüße, Keba
|