2013-06-22 89 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軟件包
  • 修復損壞的包庫
  • 改變文件的權限