0

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

但是,无论我尝试打开什么类型的文件,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 函数调用的替代路径可以以另一种方式完成加载?

4

1 回答 1

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、fe)
  • 重新安装 python/gtk 包
  • 修复损坏的包存储库
  • 更改文件权限
于 2013-07-09T16:06:54.973 回答