Я хочу сохранить gtk. DrawingArea () содержимое объекта в jpeg файл с помощью PIL. Особенно я хочу, добавляют к этой возможности сценария сделать фотографию. Я нашел, как сохранить образ к jpeg. Все, в чем я нуждаюсь - получает объект pixbuf от gtk. DrawingArea () объект. Как я могу сделать это?
Если вы не зациклены на идее использования gstreamer, вы можете использовать OpenCV. Эта статья дает отличный пример использования pygame.
Однако вы можете получить pixbuf следующим образом (и вам даже не понадобится 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')
, а затем просто создайте кнопку и привяжите команду к get_picture
.
Конечно, если бы я писал эту программу, я бы в первую очередь захватил изображение в Image
, а затем нарисовал бы его на gtk.DrawingArea
- это позволило бы делать всевозможные забавные вещи .