Je souhaite enregistrer le contenu de l'objet gtk.DrawingArea() dans le fichier jpeg à l'aide de PIL. Particulièrement je veux ajouter à this script possibilité de faire une photo. J'ai trouvé comment save image to jpeg. Tout ce dont j'ai besoin - obtenez l'objet pixbuf de l'objet gtk.DrawingArea(). Comment puis-je faire ceci?Enregistrer gtk.DrawingArea dans le fichier
1
A
Répondre
2
Si vous n'êtes pas marié à l'idée d'utiliser gstreamer, vous pouvez utiliser OpenCV à la place. This post donne un bon exemple en utilisant pygame.
Cependant, vous pouvez obtenir le pixbuf de cette façon (et vous ne même pas besoin PIL):
def get_picture(self, event, data):
drawable = self.movie_window.window
colormap = drawable.get_colormap()
pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, 0, 8, *drawable.get_size())
pixbuf = pixbuf.get_from_drawable(drawable, colormap, 0,0,0,0, *drawable.get_size())
pixbuf.save(r'somefile.png', 'png')
pixbuf.save(r'somefile.jpeg', 'jpeg')
, puis il suffit de créer un bouton et lier la commande à get_picture
.
Bien sûr, si je devais écrire ce programme, je fait saisir l'image à un Image
en premier lieu, puis tirer sur le gtk.DrawingArea
- qui vous permettra de faire toutes sortes de fun things.