сохранить gtk.DrawingArea в файл - PullRequest
1 голос
/ 15 июля 2010

Я хочу сохранить содержимое объекта gtk.DrawingArea () в файл jpeg, используя PIL. Особенно хочу добавить в этот скрипт возможность делать фото. Я нашел, как сохранить изображение в формате JPEG . Все что мне нужно - получить объект pixbuf из объекта gtk.DrawingArea (). Как я могу это сделать?

1 Ответ

2 голосов
/ 15 июля 2010

Если вы не женаты на идее использования 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 - это позволит вам делать все виды забавных вещей .

...