void bmp_write_dib(bmp_structp bmp) { if (_is_big_endian()) bmp_dib_v3_header_swap_endianess(&bmp->dib); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.header_sz, sizeof(uint32_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.width, sizeof(uint32_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.height, sizeof(uint32_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.nplanes, sizeof(uint16_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.depth, sizeof(uint16_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.compress_type, sizeof(uint32_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.bmp_bytesz, sizeof(uint32_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.hres, sizeof(uint32_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.vres, sizeof(uint32_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.ncolors, sizeof(uint32_t)); bmp->write_fn(bmp, (uint8_t*)&bmp->dib.nimpcolors, sizeof(uint32_t)); }
static void bmp_write_dib(bmpfile_t *bmp, FILE *fp) { bmp_dib_v3_header_t dib = bmp->dib; if (_is_big_endian()) bmp_dib_v3_header_swap_endianess(&dib); fwrite(&(dib.header_sz), sizeof(uint32_t), 1, fp); fwrite(&(dib.width), sizeof(uint32_t), 1, fp); fwrite(&(dib.height), sizeof(uint32_t), 1, fp); fwrite(&(dib.nplanes), sizeof(uint16_t), 1, fp); fwrite(&(dib.depth), sizeof(uint16_t), 1, fp); fwrite(&(dib.compress_type), sizeof(uint32_t), 1, fp); fwrite(&(dib.bmp_bytesz), sizeof(uint32_t), 1, fp); fwrite(&(dib.hres), sizeof(uint32_t), 1, fp); fwrite(&(dib.vres), sizeof(uint32_t), 1, fp); fwrite(&(dib.ncolors), sizeof(uint32_t), 1, fp); fwrite(&(dib.nimpcolors), sizeof(uint32_t), 1, fp); }