Python / gtk gtk.gdk.pixbuf_new_from_file()总是失败

时间:2013-06-22 03:01:38

标签: python pygtk

您好我正在尝试在python 2.7.3下使用python gtk脚本;在Linux上(在X11下),它需要从磁盘加载pixbufs图像。

然而,python返回一个glib.GError:“无法识别图像文件格式”,无论我尝试打开什么类型的文件; 例如:with:pixbuf = gtk.gdk.pixbuf_new_from_file(filename)

我可以执行gtk.gdk.pixbuf_get_formats(),并且在返回的词典列表中,我尝试加载的格式列为.png,.ppm,.jpg。

但是,当我尝试gtk.gdk.pixbuf_get_file_info(filename)时,它会返回None。

其他基于GTK的程序,如Gimp,加载这些相同的图像就好了;和gtk脚本不从磁盘加载图标,但绘制按钮 - 等工作正常。

我如何搜索此故障的原因?

我错过了某种mime类型的文件吗?

是否存在使用其他gtk函数调用的替代路径,这可能会以另一种方式完成加载?

1 个答案:

答案 0 :(得分:0)

这对我有用:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import gtk

def win_with_image():
    pixbuf = gtk.gdk.pixbuf_new_from_file("photo.png")
    print pixbuf
    win = gtk.Window(gtk.WINDOW_TOPLEVEL)
    image = gtk.Image()
    image.set_from_pixbuf(pixbuf)
    win.add(image)
    win.connect("destroy", gtk.main_quit)
    win.show_all()

if __name__ == '__main__':
    win_with_image()
    gtk.main()

如果这对您不起作用,请尝试:

  • 启动Google并输入您的错误并选择第二个链接(http://aptosid.com/index.php?name=PNphpBB2&file=viewtopic&t=2246),一般来说这几乎总是有用。
  • 重新安装libglib
  • 安装gtk(也许是一些图形库 - libpng,libjpeg,f.e。)
  • 重新安装python / gtk包
  • 修复损坏的软件包存储库
  • 更改文件权限