2011-06-29 43 views
0

我有一些6k的二進制格式的圖片(uint8),我在這裏按照30行左右的圖塊處理圖片。其含義是,我最終不得不跳過大部分文件,直到我達到我需要的位置。到目前爲止,最快的事情似乎是將不必要的部分讀入臨時變量並在之後刪除變量,但從邏輯上講,這似乎不是最有效的方式。跳到文件位置的最快方法(C/C++)

ifstream img; 
int startingPixel = N; 
for(int frame=0;frame<numFrames;frame++){ 
    img.open("myfileAsFunctionOfFrame.bin",ios::in | ios::binary); 
    img.read((char*) &tempArray[0], startingPixel*sizeof(uint8)); 
    img.read((char*) &myArray[frame*pixelsToRead], pixelsToRead*sizeof(uint8)); 
    img.close(); 
} 
delete [] tempArray; 

我嘗試過使用img.ignore(),但是這使得它變慢了。

有什麼建議嗎?

+0

的超快速回復謝謝你們! – foges

回答

0
img.seekg(0, std::ios_base::cur); // replace 0 with desired offset