我正在使用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
相信我,閱讀它會更容易。如果必須分割長線。 –