CImg 读取jpg, png ,tif 等格式失败解决方案

时间:2022-03-24 09:01:45

CImg homepage :http://cimg.sourceforge.net

CImg 给出的一个简单的示例:http://cimg.sourceforge.net/reference/group__cimg__tutorial.html

#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;
}

效果图如下CImg 读取jpg, png ,tif 等格式失败解决方案

但是如果按照以上教程运行会出现无法读取jpg 的现象,把原图片转换成BMP格式则通过。

这是什么原因呢,CImg 在读取 JPEG PNG TIF等格式的文件时,是需要做一个转换,而这个转换CImg是调用了第三方软件 ImageMagick

 ImageMagick下载主页:http://www.imagemagick.org/script/install-source.php#windows

下载二进制可执行文件,安装后把安装ImageMagic 根目录下的convert.exe拷贝到所建工程下面然后把CORE_RL_开头的dll 也拷贝过去,这样就可以运行了。