【问题标题】:Python/gtk gtk.gdk.pixbuf_new_from_file() always failsPython/gtk gtk.gdk.pixbuf_new_from_file() 总是失败
【发布时间】:2013-07-10 00:06:54
【问题描述】:

您好,我正在尝试在 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 函数调用的替代路径可以以另一种方式完成加载?

【问题讨论】:

    标签: python pygtk


    【解决方案1】:

    这对我有用:

    #!/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 包
    • 修复损坏的包存储库
    • 更改文件权限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多