当应用程序也链接到FreeImage库时,我在使用Qt imageformats插件加载webp图像时遇到问题。它似乎不会影响使用Qt imageformats插件加载的任何其他格式,但每次尝试加载webp图像时,代码都会因为段错而崩溃。
我创建了一个非常简单的测试代码,它由一个简单的CMakeLists.txt和一个main.cpp组成。我在这个测试代码中所做的就是将一个webp图像加载到QImage中并将其保存到主文件夹中的tmp.jpg。它在链接FreeImage库时崩溃,并且在没有时运行正常。
这是CMakeLists.txt:
cmake_minimum_required(VERSION 2.8.12)
project(freeimagetest)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
find_package(Qt5 COMPONENTS Core Gui REQUIRED)
add_executable(${PROJECT_NAME} "main.cpp")
qt5_use_modules(${PROJECT_NAME} Core Gui)
# Comment this line to not link against FreeImage
target_link_libraries(${PROJECT_NAME} "freeimage")
和main.cpp:
#include <QImageReader>
#include <QDir>
int main() {
QImage ret;
QImageReader reader;
reader.setFileName("/path/to/sample.webp");
reader.read(&ret);
ret.save(QDir::homePath() + "/tmp.jpg");
return 0;
}
以下是一个示例网络图片:https://www.gstatic.com/webp/gallery3/1_webp_ll.webp
我不太清楚崩溃发生的原因,或者我可以做些什么来阻止它...我很感激任何帮助,暗示,建议!