Portál AbcLinuxu, 16. července 2025 19:05
import sys
import Image
import ImageGrab
.
.
.
img=ImageGrab.grab()
.
.
.
Traceback (most recent call last): File "./programek.py", line 17, in ? import ImageGrab File "/usr/lib/python2.4/site-packages/PIL/ImageGrab.py", line 34, in ? import _grabscreen ImportError: No module named _grabscreenNic jsem k tomu na netu nenasel, akorat tady maji ten samej problem co ja. Nevite nekdo co s tim?
xwd
.
roura = os.popen("xwd -root") data = roura.read()a budeš mít ten obrázek bez psaní na disk
imagePipe = os.popen("xwd -root") imageData = imagePipe.read() imageFile = open('vystup.xwd','w') imageFile.write(imageData) imageFile.close()I v tomhle bych potreboval poradit, zda jsem to alespon napsal ciste, nekomplikovane. Diki vsem.
import -window root screenshot.pngNetvrdím, že je lepší či horší - je to prostě taky možnost.
... pripadne to ukladam (copy & rename) do zvoleneho adresare a souboru. Ehm, trochu divne, a proto bych se chtel zeptat, zda se to takhle dela, zda je to standardni.Já myslím, že jo. Tady moc na vybranou asi není. Snad jen, že místo copy & rename dej pouze rename, ať se ti v /tmp nehromadí soubory. Jestli budeš číst png z roury, tak se bez dočasného souboru objedeš úplně.
jinak tady je kod s pipe, ktery jsem vygeneroval:Hehe, nedokážu posoudit, myslím, že je to v pohoděimagePipe = os.popen("xwd -root") imageData = imagePipe.read() imageFile = open('vystup.xwd','w') imageFile.write(imageData) imageFile.close()I v tomhle bych potreboval poradit, zda jsem to alespon napsal ciste, nekomplikovane. Diki vsem.
#!/usr/bin/env python import subprocess cmd = ['xwd', '-root'] process = subprocess.Popen(cmd, stdout = subprocess.PIPE) file('vystup.xwd', 'w').write(process.stdout.read())Vřele doporučuji si zvyknout na modul subprocess. Možná je to trochu komplikovanější, ale zato se s externími programy zachází jednotně, lépe se předávají argumenty a můžeš úplně zapomenout na
os.system os.spawn* os.popen* popen2.* commands.*Jo a snad možná místo "open" je lepší psát "file".
#!/usr/bin/env python import gtk, gc width = gtk.gdk.screen_width() height = gtk.gdk.screen_height() screenshot = gtk.gdk.Pixbuf.get_from_drawable( gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, width, height), gtk.gdk.get_default_root_window(), gtk.gdk.colormap_get_system(), 0, 0, 0, 0, width, height) screenshot.save('screenshot.png', 'png') del screenshot gc.collect()Více informací viz PyGTK FAQ.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.