作者heymei0421 (heymei)
看板C_and_CPP
標題[問題] C語言讀圖檔
時間Fri Aug 12 20:25:53 2011
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
目前想把一個raw檔讀入一維陣列 每一個raw檔的pixel有8個位元 所以宣告char陣列
來儲存352*288的圖檔 所以宣告101376的字元陣列。
自己的寫法如下:
FILE *fptr;
int i= 0;
unsigned char num[101376]= {0};
fptr = fopen("c:\\HW\\HW2_Porsche918Spyder.yuv","rb");
fread(&num,sizeof(unsigned char),101376,fptr);
unsigned char num_int[101376]={0}; //宣告字元陣列來裝轉換int後的值
char *endptr;
for(i=0;i<101376;i++)
num_int[i] = strtol(&num, &endptr, 2);
問題1:這樣使用fread對嗎?
問題2:這樣使用strtol對嗎?
餵入的資料(Input):
讀入一個幾乎整片綠的法拉利raw圖檔
預期的正確結果(Expected Output):
小弟覺得讀進來的結果 應該值在0~255之間
錯誤結果(Wrong Output):
但出來的值幾乎是22上下誤差不到2..
我感覺好像是錯的...
請大大幫忙>"<
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.234.29
→ firejox:.... 08/12 20:34
→ firejox:不需strtol... 08/12 20:35
→ firejox:而且請自己先去複習什麼是binary檔... 08/12 20:49
→ firejox:而且自己試著輸出num array... 08/12 20:51
→ james732:覺得讀圖檔問題可以在精華區開專區了 08/12 23:02
→ loveme00835:@_@ 同感 08/12 23:03
→ angleevil:上次圖檔有兩篇好文,版主要不要收集一下.讓在下以後可 08/13 07:04
→ angleevil:以偷偷會點皮毛 08/13 07:04