void HPCupsFilter::WriteKBMPHeader(FILE *fp, int width, int height) { BYTE cmap[8]; if (fp == NULL) return; adj_k_width = width; if (width % 32) { adj_k_width = (width / 32 + 1) * 32; } CreateBMPHeader(adj_k_width, height, 1, 1); adj_k_width /= 8; black_raster = new BYTE[adj_k_width]; memset (black_raster, 0, adj_k_width); fwrite (&this->bmfh.bfType, 1, sizeof (short), fp); fwrite (&this->bmfh.bfSize, 1, sizeof (int), fp); fwrite (&this->bmfh.bfReserved1, 1, sizeof (short), fp); fwrite (&this->bmfh.bfReserved2, 1, sizeof (short), fp); fwrite (&this->bmfh.bfOffBits, 1, sizeof (int), fp); fwrite (&this->bmih, 1, DBITMAPINFOHEADER, fp); memset(cmap, 0, sizeof(cmap)); cmap[0] = cmap[1] = cmap[2] = cmap[3] = 255; fwrite(cmap, 1, sizeof(cmap), fp); }
void HPCupsFilter::WriteCBMPHeader (FILE *fp, int width, int height) { if (fp == NULL) return; adj_c_width = width; if (width % 4) { adj_c_width = (width / 4 + 1) * 4; } color_raster = new BYTE[adj_c_width * 3]; memset (color_raster, 0xFF, adj_c_width * 3); CreateBMPHeader(adj_c_width, height, 3, 8); fwrite (&this->bmfh.bfType, 1, sizeof (short), fp); fwrite (&this->bmfh.bfSize, 1, sizeof (int), fp); fwrite (&this->bmfh.bfReserved1, 1, sizeof (short), fp); fwrite (&this->bmfh.bfReserved2, 1, sizeof (short), fp); fwrite (&this->bmfh.bfOffBits, 1, sizeof (int), fp); fwrite (&this->bmih, 1, DBITMAPINFOHEADER, fp); }