我想使用PIL将gtk.DrawingArea()对象内容保存到jpeg文件中。特别是我想添加到this script的可能性,使照片。我找到了save image to jpeg的方法。我所需要的就是-从gtk.DrawingArea()对象中获取pixbuf对象。我该怎么做呢?
发布于 2010-07-15 21:32:10
如果您还没有接受使用gstreamer的想法,那么可以使用OpenCV。This post给出了一个使用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上绘制它-这将允许您执行各种fun things操作。
https://stackoverflow.com/questions/3254499
复制相似问题