На мой вопрос, вероятно, легко ответить. поэтому, если я читаю из структуры bmp, я вижу в файле bmp.h два разных размера
заголовок bmp.h
struct bmp_header{
uint16_t type; // "BM" (0x42, 0x4D)
uint32_t size; // file size
uint16_t reserved1; // not used (0)
uint16_t reserved2; // not used (0)
uint32_t offset; // offset to image data (54B)
uint32_t dib_size; // DIB header size (40B)
uint32_t width; // width in pixels
uint32_t height; // height in pixels
uint16_t planes; // 1
uint16_t bpp; // bits per pixel (1/4/8/24)
uint32_t compression; // compression type (0/1/2) 0
uint32_t image_size; // size of picture in bytes, 0
uint32_t x_ppm; // X Pixels per meter (0)
uint32_t y_ppm; // X Pixels per meter (0)
uint32_t num_colors; // number of colors (0)
uint32_t important_colors; // important colors (0)
} __attribute__((__packed__));
после того, как я прочитал их, я вижу, что иногда файл bmp image_size
совпадает с size
файла bmp, но иногда его на 54 байта больше, чем обычный image_size
? почему
я понимаю, что смещение изображения равно 54, но когда мне нужно вычислить это число по размеру?
PS: я знаю, как вычислить нормальное image_size
пример: Первый :
File size = 3126 bytes
File image_size: 3072 bytes
File offset. = 54
File dib. = 40
Второй
File size = 16182 bytes
File image size = 16128 bytes
File offset. = 54
File dib. = 40