1

我正在尝试将 *.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 * : Bug!gdk-pixbuf loader 'png' 没有在失败时设置错误。PixbufError:无法加载图像'.../Test.png':原因未知,可能是图像文件损坏

libpng 版本是 12-dev 和 12-0

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

4

2 回答 2

0

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

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

于 2013-11-07T12:55:37.000 回答
0

只是为了确保,您可以发布以下结果:

dpkg -l | grep libjpeg

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

dpkg -l | grep libfreeimage

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

这有帮助吗?

于 2013-11-06T19:52:15.560 回答