如何用Gdk3从文件创建PixBuf



环境:Python3

库:

from gi.repository import Gtk, Gdk
import cairo

我想创建一个"pixbuf from file",但该方法在Gdk3中不再存在。

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只支持这些方法:

gdk_pixbuf_get_from_window
gdk_pixbuf_get_from_surface

我自己发现了:

image = Gtk.Image()
image.set_from_file('sunshine.png')
pixbuf = image.get_pixbuf()
Gdk.cairo_set_source_pixbuf(cr, pixbuf, 10, 10)

这个问题很老了,但也许它能帮助别人:

from gi.repository import GdkPixbuf
pixbuf = GdkPixbuf.Pixbuf.new_from_file('sunshine.png')

在GdkPixbuf上测试。_version == '2.0'

我对python了解不多,但一般不应该直接使用gtk image来加载文件。使用GdkPixbuf代替,因为错误处理。没有属性的原因(python中)"pixbuf new from file",是因为大部分GdkPixbuf处理,仍然使用(在C中)gdk-pixbuf 2.0。我不知道他们为什么没有移植或者还保留着它。在python中,你必须找到"gdk pixbuf"模块,而不是使用GDK3,正如Schcriher指出的那样。

相关内容

  • 没有找到相关文章

最新更新