2013-06-22 59 views
0

嗨我想在python 2.7.3下使用python gtk脚本;在Linux上(在X11下),它需要从磁盘加载映像到pixbufs。Python/gtk gtk.gdk.pixbuf_new_from_file()总是失败

但是,python返回一个glib.GError:“无法识别图像文件格式”,无论我试图打开什么类型的文件; 例如:具有:PIXBUF = gtk.gdk.pixbuf_new_from_file(文件名)

我可以做一个gtk.gdk.pixbuf_get_formats(),并在其中被返回字典的列表,则格式我试图加载列出.png,.ppm,.jpg。

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

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

我该如何搜索这个故障的原因?

我是否缺少某种类型的MIME类型文件?

是否有一个替代路径使用其他gtk函数调用,可能会以另一种方式加载?

回答

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() 

如果你这不`吨的工作,尝试:

  • 启动谷歌和键入错误,选择第二个链接(http://aptosid.com/index.php?name=PNphpBB2&file=viewtopic&t=2246),在一般这几乎总是有帮助的。
  • 重装libglib
  • 安装GTK(也许有些图形库 - 使用libpng,libjpeg,远东)
  • 重装巨蟒/ gtk软件包
  • 修复损坏的包库
  • 改变文件的权限