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; }
效果图如下
但是如果按照以上教程运行会出现无法读取jpg 的现象,把原图片转换成BMP格式则通过。
这是什么原因呢,CImg 在读取 JPEG PNG TIF等格式的文件时,是需要做一个转换,而这个转换CImg是调用了第三方软件 ImageMagick
ImageMagick下载主页:http://www.imagemagick.org/script/install-source.php#windows
下载二进制可执行文件,安装后把安装ImageMagic 根目录下的convert.exe拷贝到所建工程下面然后把CORE_RL_开头的dll 也拷贝过去,这样就可以运行了。