BMP data read C

int main()
{
int i;
int j;
FILE *fp;
char bmp_data[128*8];

// "rb" 只读打开一个二进制文件,只允许读数据。'b'指的是让这个库函数以二进制形式打开此文件。
// 读取失败会返回空指针,读取成功后,fp 会指向一块具有 bmp 属性的内存,我们可以对这块内存开始操作
if((fp = fopen("test.bmp", "rb")) == NULL) // fp = 0x00426aa0
{
    printf("Cann't open the file!\n");
    return 0;
}

// 让 fp 指向 bmp 文件的开始 
// 第 2 个参数是偏移量 第三个参数是文件起始地址 所以此函数执行成功后文件指针会指向文件的开始
fseek(fp, 62, SEEK_SET);
fread(&bmp_data, sizeof(bmp_data), 1, fp);
j = 27;
for(i=0; i<16; i++)
printf("bmp_data raw %xh:0x%x\n",(62+i+16*j), bmp_data[i+16*j] & 0xff);

fclose(fp);

return 0;

}

Guess you like

Origin www.cnblogs.com/seamoon23/p/11842560.html