我正在使用vs2015,创建了一个win32 C++控制台应用程序 这给了一个纯粹的本机C++应用程序,而我有一些其他的例子工作。 此演示代码不起作用,问题接连加载的lenna.png或lenna.jpgcimg不会加载lenna图像
每次我得到的错误,图像文件isnt识别。 (我甚至用维基百科的原始lenna),但它不起作用,原因不明,为了排除路径问题,我甚至将lenna放在了“d:\\ lenna.jpg”。
我不知道为什么它不会工作,有什么想法?
是cimg只是老,并没有承认这些天的JPG?
#include "CImg.h"
#include "stdafx.h"
using namespace cimg_library;
int main() {
CImg<unsigned char> image("D:\\CODE\\Cimg-prj\\PGT\\Debug\\Lenna.png"), 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;
}
的错误,我得到(所有输出):
无效参数 - “C:\用户\彼得\应用程序数据\本地的\ Temp \ kY6GW46A.pnm” 'gm.exe' 无法识别作为内部或外部命令,可操作的程序或批处理文件。 无效参数 - “C:\ Users \ Peter \ AppData \ Local \ Temp \ as88yC80.pnm” 'gm.exe'不被识别为内部或外部命令, 可操作程序或批处理文件。 无效参数 - “C:\ Users \ Peter \ AppData \ Local \ Temp \ wa804U6G.pnm” 'gm.exe'未被识别为内部或外部命令, 可操作程序或批处理文件。 [CImg] * * * CImgIOException * * * [实例(0,0,0,0,00000000,非共享)] CImg :: load():无法识别文件格式'Lenna.png' 。
我相信Lenna.png是一个有效的PNG文件 (如果我重命名它的扩展名,irfranview会尝试将它重命名为png)。
我可能不会得到它应有的努力,建立一个正确的项目为巴新的额外的复杂性,我下载的zlib和libpng,但不知道如何将它们添加到项目中(和他们的一堆文件?他们没有一个dll或.h文件喜欢cimg我需要添加所有这些文件吗?)
*请*缩进您的代码。 –
我担心长行会变得不可读,而且由于代码很短,每行大多有1条命令,我就这样写下来。 – user3800527
相信我,阅读它会更容易。如果必须分割长线。 –