写web后端的时候,有个需求是判断用户上传的bmp图片宽高,不能超出限制。
找了一堆代码,发现虽然功能很全,信息都有解析出来,但是略复杂了,于是仔细研究了下bmp图片格式,做了简化。
先直接上代码, 就8行,应该算是目前最简的了。如果有其他更简略的,欢迎交流
#include <fstream>
// get bmp picture width and height and skip other header information
FILE *picture_file = fopen(BMP_FILE_PATH, "rb");
int32_t bmp_width;
int32_t bmp_height;
int offset = sizeof(uint16_t) * 3 + sizeof(uint32_t) * 3;
fseek(picture_file, offset, SEEK_SET);
fread(&bmp_width, 1, sizeof(bmp_width), picture_file);
fread(&bmp_height, 1, sizeof(bmp_height), picture_file);
fclose(picture_file);