CImg:无法识别jpg格式

#include <iostream> #include <stdlib.h> #include "CImg.h" using namespace cimg_library; using namespace std; int main(){ CImg<unsigned char> image("lena.jpg"), visu(500,400,1,3,0); const unsigned char red[] = { 255,0,0 }, green[] = { 0,255,0 }, blue[] = { 0,0,255 }; return 0;} 

当我编译这个代码错误:CImg :: load():无法识别文件“lena.jpg”的格式显示up.Anybuild议?

我安装了imageMagick,但错误仍然发生。

Solutions Collecting From Web of "CImg:无法识别jpg格式"

要在CImg中启用原生的JPG文件支持,请在包含CImg.h之前CImg.h

 #define cimg_use_jpeg #include "CImg.h" .... 

并将您的代码与libjpeg库链接。 它完美地为我工作。 如果不使用这个,CImg将尝试对ImageMagick的转换工具进行外部调用,以加载文件,这不是最干净的解决方案。 CImg里面使用libjpeg肯定更好。 这对其他图像格式(tiff,png,…)是一样的。

你有没有尝试过任何其他的图像文件,然后“lena.jpg”? 是“lena.jpg”在目前的程序相同的目录? 你用什么编译器?

这个例子是否行得通(如果它真的没有意义)?

 #include "CImg.h" using namespace cimg_library; int main() { CImg<unsigned char> image("lena.jpg"), visu(500,400,1,3,0); const unsigned char red[] = { 255,0,0 }, green[] = { 0,255,0 }, blue[] = { 0,0,255 }; image.blur(2.5); CImgDisplay main_disp(image,"Click a point"), draw_disp(visu,"Intensity profile"); while (!main_disp.is_closed() && !draw_disp.is_closed()) { main_disp.wait(); if (main_disp.button() && main_disp.mouse_y()>=0) { const int y = main_disp.mouse_y(); visu.fill(0).draw_graph(image.get_crop(0,y,0,0,image.width()-1,y,0,0),red,1,1,0,255,0); visu.draw_graph(image.get_crop(0,y,0,1,image.width()-1,y,0,1),green,1,1,0,255,0); visu.draw_graph(image.get_crop(0,y,0,2,image.width()-1,y,0,2),blue,1,1,0,255,0).display(draw_disp); } } return 0; } 

资料来源: http : //cimg.eu/reference/group__cimg__tutorial.html

我注意到文档说它只支持JPG格式,如果imageMagick安装,也许你做了错误的地方,它没有正确安装?

编辑:

这是否工作?

 #include "CImg.h" using namespace cimg_library; int main() { CImg<unsigned char> img(640,400,1,3); // Define a 640x400 color image with 8 bits per color component. img.fill(0); // Set pixel values to 0 (color : black) unsigned char purple[] = { 255,0,255 }; // Define a purple color img.draw_text(100,100,"Hello World",purple); // Draw a purple "Hello world" at coordinates (100,100). img.display("My first CImg code"); // Display the image in a display window. return 0; }