首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PixBuf从文件中创建Gdk3?

如何使用PixBuf从文件中创建Gdk3?
EN

Stack Overflow用户
提问于 2013-05-19 17:36:03
回答 2查看 7.1K关注 0票数 9

环境: Python3

图书馆:

代码语言:javascript
复制
from gi.repository import Gtk, Gdk
import cairo

我想从文件中创建一个‘像素’,但是这个方法在Gdk3中不再存在。

代码语言:javascript
复制
pb = Gdk.pixbuf_new_from_file('sunshine.png')
Gdk.cairo_set_source_pixbuf(cr, pb, 0, 0)

结果: AttributeError:'gi.repository.Gdk‘对象没有属性'pixbuf_new_from_file’

有人知道如何用Gdk3来做这件事吗?Gdk3似乎只支持以下方法:

代码语言:javascript
复制
gdk_pixbuf_get_from_window
gdk_pixbuf_get_from_surface

更新

我自己发现的:

代码语言:javascript
复制
image = Gtk.Image()
image.set_from_file('sunshine.png')
pixbuf = image.get_pixbuf()
Gdk.cairo_set_source_pixbuf(cr, pixbuf, 10, 10)
EN

回答 2

Stack Overflow用户

发布于 2013-09-24 23:19:43

这个问题已经很久了,但也许它能帮到一个人:

代码语言:javascript
复制
from gi.repository import GdkPixbuf
pixbuf = GdkPixbuf.Pixbuf.new_from_file('sunshine.png')

在GdkPixbuf._version == '2.0‘上测试

票数 22
EN

Stack Overflow用户

发布于 2014-04-29 10:33:28

我对python不太了解,但是一般来说,您不应该直接使用gtk映像来加载文件。使用GdkPixbuf代替因为错误处理。之所以没有属性(在python中)“像素新文件”,是因为对于大部分的GdkPixbuf处理,仍然使用(在C中)GDK-spinbuf-2.0。我不知道他们为什么不接或还留着它。正如Schcriher所指出的,在python中,您必须找到"gdk像素“模块,而不是使用GDK3。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16637504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档