每个人都知道 BMP 文件是 little-endian 的。维基百科页面说前 2 个字节必须0x424D
确保该文件是 BMP,但是当我从 BMP 文件中获取前 2 个字节时,它给了我两个字节的 reverse 0x4D42
。
我的代码:
FILE *file;
unsigned short bmpidentifier;
if((file = fopen("c://loser.bmp", "rb")) == NULL){
perror("The problem is");
return -1;
}
fread(&bmpidentifier, sizeof(unsigned short), 1, file);
if(bmpidentifier == 0x424D){
printf("The file actually is a bmp file.\n");
} else{
printf("%X\n", bmpidentifier);
printf("The file is not a bmp file.\n");
}
现在,如何将 BMP 文件字节排序为 little-endian,并将前 2 个字节颠倒过来?