Se anadio la captura por recuadro, esto quiere decir que se puede tomar solo un area de la pantalla sin tener que tomar la captura de toda la pantalla dando clic en la hoja que tiene la ventana.
import pygtk; pygtk.require('2.0')
import gtk
import os, datetime
import sys
version="0.2"
data = [
"16 16 3 1",
" c None",
". c #000000",
"X c #FFFFFF",
" ",
" ...... ",
" .XXX.X. ",
" .XXX.XX. ",
" .XXX.XXX. ",
" .XXX..... ",
" .XXXXXXX. ",
" .XXXXXXX. ",
" .XXXXXXX. ",
" .XXXXXXX. ",
" .XXXXXXX. ",
" .XXXXXXX. ",
" .XXXXXXX. ",
" ......... ",
" ",
" "
]
class icarus_pantallazo:
def main(self):
root = gtk.gdk.get_default_root_window();
rootwidth, rootheight = root.get_size();
current_dt=datetime.datetime.now()
dia_numero= "%02d" % current_dt.day
meses_numero="%02d" % current_dt.month
anio=str(current_dt.year)
hora_24="%02d" % current_dt.hour
minuto="%02d" % current_dt.minute
segundo="%02d" % current_dt.second
self.fecha="_"+dia_numero+"-"+meses_numero+"-"+anio+"_"+hora_24+":"+minuto+":"+segundo
#
self.pix = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, 1, 8, rootwidth, rootheight);
self.pix.get_from_drawable(root, root.get_colormap(), 0, 0, 0, 0, rootwidth, rootheight);
def guardar(self,modo):
if modo==1:
#crear ventana para tomar el recuadro
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_decorated(True)
self.window.connect("delete_event", self.close_application)
self.window.set_events(self.window.get_events() | gtk.gdk.BUTTON_PRESS_MASK)
self.window.connect("button_press_event", self.press_aplication)
self.window.show()
pixmap, mask = gtk.gdk.pixmap_create_from_xpm_d(self.window.window, None, data)
self.image = gtk.Image()
self.image.set_from_pixmap(pixmap, mask)
self.image.show()
# To display the image, we use a fixed widget to place the image
self.fixed = gtk.Fixed()
self.fixed.set_size_request(50,50) #16,16
self.fixed.put(self.image, 0, 0)
self.window.add(self.fixed)
self.fixed.show()
self.window.shape_combine_mask(mask, 0, 0)
gtk.main()
#
if self.pix!=None:
home = os.environ['HOME']
self.pix.save(home+"/pantallazo"+self.fecha+".png", "png")
print "Tomo foto"
return 0
return 1
def press_aplication(self, widget, event):
#print event
if event.x<=16 and event.y<=16 and event.button==1:
dimension=self.window.get_size()
posicion=self.window.get_position()
pix_aux = self.pix.subpixbuf(posicion[0],posicion[1], dimension[0], dimension[1])
self.pix=pix_aux
self.window.hide()
gtk.main_quit()
#self.pix=None
return 0
def close_application(self, widget, event, data=None):
gtk.main_quit()
self.pix=None
#del self.window
return gtk.FALSE
if __name__ == '__main__':
a=icarus_pantallazo()
a.main()
if sys.argv[1].lower()=="completa":
a.guardar(0)
elif sys.argv[1].lower()=="recuadro":
a.guardar(1)
else:
print "parametro incorrecto"
$python archivo.py recuadro "toma la captura del area marcada por la ventana"
o
$python archivo.py completa "Toma la captura completa"
Descargar despues de descargar anadir la extension py
No hay comentarios:
Publicar un comentario
$ apt-get install comentarios