看板 C_and_CPP 關於我們 聯絡資訊
小弟最近學習 如何讀取BMP 找了很多資料 東湊西湊的 現在可以順利將檔案讀出 並 另外新增一個BMP出來 fp = fopen("c:\\11.bmp","rb"); fseek(fp,18,0); fread(tmp,sizeof(unsigned char),8,fp); W = (int)*tmp + ((int)*(tmp+1) << 8) + ((int)*(tmp+2) << 16) + ((int)*(tmp+3) << 24); H = (int)*(tmp+4) + ((int)*(tmp+5) << 8) + ((int)*(tmp+6) << 16) + ((int)*(tmp+7) << 24); fseek(fp,10,0); fread(tmp,sizeof(unsigned char),4,fp); offset = (int)*tmp + ((int)*(tmp+1) << 8) + ((int)*(tmp+2) << 16) + ((int)*(tmp+3) << 24); fseek(fp,0,0); buf = (unsigned char *)malloc(W*H*3+offset); fread(buf,sizeof(unsigned char),W*H*3+offset,fp); fp2 = fopen("c:\\test.bmp","wb"); fwrite(buf,sizeof(unsigned char),W*H*3+offset,fp2); 我目前的觀念是 算出 offest 就可以知道 offest 之前的資料都是 info offest 之後才是 點陣圖資料 所以 我抓第一個點的資料是 FF FF FF FF 請問 FF FF FF FF 這個要怎麼轉出來是 一個顏色?? 我之前都沒寫過影像程式 所以問的問題可能很爛.. 還希望各位大大能夠多指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.160.240
ericinttu:我也還不會DOS下怎麼顯示一個Pixel 09/18 00:48
Bencrie:如果是普通的BGR pixel,那就三個bytes組成一個pixel 09/18 10:31
Bencrie:然後以整個row為單位作32 bits alignment 09/18 10:31
Bencrie:如果你的width剛好是四的倍數,那剛好可以省略對齊 09/18 10:32