将 PIL 图像转换为 GTK Pixbuf
我想看看是否有另一种方法可以将 PIL 图像转换为 GTK Pixbuf。 现在我所拥有的只是我发现并根据我的需要进行修改的似乎低效的编码实践。这就是我到目前为止所拥有的:
def image2pixbuf(self,im):
file1 = StringIO.StringIO()
im.save(file1, "ppm")
contents = file1.getvalue()
file1.close()
loader = gtk.gdk.PixbufLoader("pnm")
loader.write(contents, len(contents))
pixbuf = loader.get_pixbuf()
loader.close()
return pixbuf
是否有一些更简单的方法来完成我错过的转换?
I am looking to see if there is another way to convert a PIL Image to GTK Pixbuf.
Right now all I have is what seems to be like inefficient coding practice that I found and hacked to my needs. This is what I have so far:
def image2pixbuf(self,im):
file1 = StringIO.StringIO()
im.save(file1, "ppm")
contents = file1.getvalue()
file1.close()
loader = gtk.gdk.PixbufLoader("pnm")
loader.write(contents, len(contents))
pixbuf = loader.get_pixbuf()
loader.close()
return pixbuf
Is there some easier way to do this conversion that I missed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果你使用 numpy 数组,你可以有效地做到这一点:
You can do it efficiently if you go via a numpy array:
如果您使用 PyGI 和 GTK+3,这里有一个替代方案,它也消除了对 numpy 的依赖:
If you're using PyGI and GTK+3, here's an alternative which also removes the need for a dependency on numpy:
我无法使用 gtk 3.14(此版本具有方法 new_from_bytes)[1],因此,为了使其正常工作,请按照您的方法进行此解决方法:
参考文献:
I'm not able to use gtk 3.14 (this version has the method new_from_bytes) [1], so did this workaroud like yours in order to get it working:
References: