【发布时间】:2020-03-08 19:56:07
【问题描述】:
我尝试过包含 libpng16/png.h 和 #define cimg_use_png,但它们都没有解决错误。另外,我在同一目录中有main.cpp、lenna.jpg 和CImg.h。
CMakeLists.txt:
cmake_minimum_required(VERSION 3.6)
project(HelloWorld)
set(CMAKE_CXX_STANDARD 17)
set(SOURCE_FILES main.cpp)
add_executable(HelloWorld ${SOURCE_FILES})
set(YOU_NEED_X11 1)
set(YOU_NEED_PNG 1)
if (${YOU_NEED_PNG} EQUAL 1)
message(STATUS "Looking for libpng...")
find_package(PNG REQUIRED)
include_directories(${PNG_INCLUDE_DIR})
target_link_libraries (HelloWorld ${PNG_LIBRARY})
target_compile_definitions(HelloWorld PRIVATE cimg_use_png=1)
endif()
if (${YOU_NEED_X11} EQUAL 1)
message(STATUS "Looking for X11...")
find_package(X11 REQUIRED)
include_directories(${X11_INCLUDE_DIR})
target_link_libraries(HelloWorld ${X11_LIBRARIES})
else()
target_compile_definitions(HelloWorld PRIVATE cimg_display=0)
endif()
main.cpp:
#include <iostream>
#include "CImg.h"
using namespace cimg_library;
int main() {
CImg<unsigned char> img("lenna.png");
int h = img.height();
int w = img.width();
int s = img.spectrum();
std::cout << "h: " << h << " w: " << w << " s: " << s << std::endl;
return 0;
}
错误:
[CImg] *** CImgIOException *** [instance(0,0,0,0,0x0,non-shared)] CImg<unsigned char>::load(): Failed to open file 'lenna.png'.
libc++abi.dylib: terminating with uncaught exception of type cimg_library::CImgIOException: [instance(0,0,0,0,0x0,non-shared)] CImg<unsigned char>::load(): Failed to open file 'lenna.png'.
Process finished with exit code 6
【问题讨论】:
-
等一下,您是在尝试使用 libpng 打开 jpeg 吗?
-
尝试运行
file lenna.png看看它是PNG 还是JPEG,因为您似乎有点不确定。 -
@MarkSetchell 命令显示:lenna.png:PNG 图像数据,512 x 512,8 位/彩色 RGB,非隔行扫描。
-
@Kerndog73 这是一个 .png
-
请在您工作的目录下运行
ls -l | pbcopy,然后在您的问题下点击edit。使用 Cmd+V 粘贴代码,然后选择新粘贴的代码并单击格式化工具栏中的{}(靠近粗体和斜体)以格式化目录作为代码列出。谢谢。