【问题标题】:Gdk::Pixbuf does not load imagesGdk::Pixbuf 不加载图片
【发布时间】:2013-11-17 18:03:32
【问题描述】:

我正在尝试将 *.jpg 图像加载到 Gdk:: Pixbuf 中,但它失败并一直告诉我:错误解释 JPEG 图像文件(错误的 JPEG 库版本:库为 62,调用者期望为 80)

try{
    Gdk::Pixbuf::create_from_file(".../Test.jpg");
}
    catch(const Glib::FileError& ex) {
    std::cerr << "FileError: " << ex.what() << std::endl;
}
    catch(const Gdk::PixbufError& ex) {
    std::cerr << "PixbufError: " << ex.what() << std::endl;
}

唯一安装的版本是 libjpeg8 和 libjpeg8-dev

我在加载 .png 图像时遇到了类似的问题:GdkPixbuf-WARNING *:错误! gdk-pixbuf loader 'png' 没有在失败时设置错误。 PixbufError: 无法加载图像'.../Test.png': 原因未知,可能是图像文件损坏

libpng 版本为 12-dev 和 12-0

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 这是一个 Unbuntu(或基于 debian 的系统)吗? libjpeg-turbo 也安装了吗? ls /usr/lib/libjpeg* 的输出是什么?
  • 我使用的是 Ubuntu 13.10,并且安装了 libjpeg-turbo8 和 libjpeg-turbo8-dev。 ls /usr/lib/libjpeg* 没有列出任何内容,但是 ls /usr/lib/x86_64-linux-gnu/libjpeg* 列出了,并且它说: /usr/lib/x86_64-linux-gnu/libjpeg.a /usr /lib/x86_64-linux-gnu/libjpeg.so /usr/lib/x86_64-linux-gnu/libjpeg.so.8 /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2

标签: c++ gtk gdk gdkpixbuf


【解决方案1】:

只是为了确定一下,您能否发布以下结果:

dpkg -l | grep libjpeg

除此之外,您是否安装了 freeimage 库?

dpkg -l | grep libfreeimage

如果是这样,请尝试删除此包并再次尝试您的代码。

这有帮助吗?

【讨论】:

  • dpkg -l | grep libjpeg: ii libjpeg-turbo8:amd64 1.3.0-0ubuntu1 amd64 IJG JPEG 兼容运行时库。 ii libjpeg-turbo8:i386 1.3.0-0ubuntu1 i386 IJG JPEG 兼容运行时库。 ii libjpeg-turbo8-dev:amd64 1.3.0-0ubuntu1 amd64 IJG JPEG 库的开发文件
  • ii libjpeg8:amd64 8c-2ubuntu8 amd64 Independent JPEG Group 的 JPEG 运行时库(依赖包) ii libjpeg8:i386 8c-2ubuntu8 i386 Independent JPEG Group 的 JPEG 运行时库(依赖包) ii libjpeg8-dev:amd64 8c-2ubuntu8 amd64 Independent JPEG Group的JPEG运行时库(依赖包)
  • dpkg -l | grep libfreeimage ii libfreeimage-dev 3.15.1-2build1 amd64 图形图像格式支持库(开发文件) ii libfreeimage3 3.15.1-2build1 amd64 图形图像格式支持库(库) 删除 libfreeimage没有解决问题
【解决方案2】:

文件名看起来很奇怪,比预期的多一个点。 使用“../Test.jpg”而不是“.../Test.jpg”。

并检查您的文件是否真的 jpeg 而不是重命名为 jpeg 的 png。 file ../Test.jpg 应该会告诉你。

【讨论】:

  • 文件名不是问题,我忘了提到我为这个问题缩短了它。图片是使用 gimp 创建的,我将其保存为 jpeg 和 png,两者都无法从 pixbuf 中读取。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多