2013-05-31 48 views
1

當我嘗試使用Cimg庫讀取jpg文件時,出現堆棧溢出錯誤,而其他格式的bmp正在工作文件。使用Cimg庫讀取jpeg圖像時發生堆棧溢出錯誤

我該如何解決它?

#include"CImg.h" 
    #include<stdio.h> 
    using namespace cimg_library; 
    int main() 
    { 
      CImg<unsigned char> src("d:\\sidimg.jpg"); 
      int width = src.width(); 
      int height = src.height(); 
      unsigned char* ptr = src.data(0,0); 
      int count=0; 
       while(count!= width*height) 
       { 

        printf("%d",*ptr); 
        ptr++; 
        count++; 
       } 
    } 
+0

看起來應該是,而計數<寬度*高度,因爲圖像不是0索引我不認爲(從像素1開始) – Magn3s1um

+0

while循環沒有問題,我測試這個程序與bmp文件工作正常。問題與JPG圖像 – siddstuff

+0

當你重寫你的緩衝區(或堆棧)時發生堆棧溢出。也許你應該嘗試刷新標準輸出,因爲可能printf正在建立並導致溢出。除此之外,它看起來很好,並且不會是一個問題,因爲stdout應該在其滿時自動刷新自身。 – Magn3s1um

回答

0

對不起,我回答晚了,但你必須有convert.exeImageMagick包在同一個目錄,其中程序以讀取/寫入JPEG圖像執行。