python - 将 gtk.DrawingArea 保存到文件

标签 python gtk pygtk

我想使用 PIL 将 gtk.DrawingArea() 对象内容保存到 jpeg 文件。我特别想添加到 this script制作照片的可能性。我找到了如何save image to jpeg 。我所需要的只是 - 从 gtk.DrawingArea() 对象获取 pixbuf 对象。我怎样才能做到这一点?

最佳答案

如果您不喜欢使用 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 .

关于python - 将 gtk.DrawingArea 保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254499/

相关文章:

python - 分配给属性引用时出现类型错误?

python - 如何 json 转储包含外来字符的字典

c - Gtk2 使用同一按钮从 2 个条目获取数据

python - 如何处理 hildon.Seekbar 中的后退和前进按钮?

python - 处理 pygtk/glade 中的删除事件

python - 如何将 Python 3.x 捆绑到使用 ReactJs 的 Electron 应用程序?

python - 为什么 ImageFont.getsize() 在使用等宽字体时会不一致地测量字符?

C++、GTK+ 和字符串类型

Gtk,如何在视口(viewport)列表底部滚动?

python - pygtk gtk.Builder.connect_signals 到多个对象?