Red de conocimiento informático - Computadora portátil - Programación Bmp

Programación Bmp

bool saveBmp3(char *bmpName)

{

//Abre el archivo en modo de escritura binaria.

ARCHIVO *fp=fopen(bmpName, "WB");

if(fp==0) devuelve 0

int w = 1;

int h = 1;

int bibitcount = 4;

int línea byte = 4

int colortablesize = 64

encabezado del archivo BITMAPFILEHEADER;

tipo de BF = 0x4d 42;

cabezal de archivo . = 0;

file head . bfsize = sizeof(bitmapfile header)+sizeof(BITMAPINFOHEADER)+colortablesize+line byte * h;

//bfOffBits son las tres primeras partes del archivo de imagen El espacio total requerido.

filehead . bfoffbits = 14+4color tablesize;

//Escribe el encabezado del archivo en el archivo

fwrite(& amp; filehead, sizeof( BITMAPFILEHEADER ), 1, FP);

encabezado BITMAPINFOHEADER;

head.biBitCount = bibitcount

head .bicl importante = 0;

cabeza .biclrsered = 0;

cabeza .biplanos = 1 . >

head.biSize = 40

imagen bisize = byte de línea * h;

head .bi width = w

head. = 0;

head . biypelspermeter = 0;

//Escribe información de mapa de bits en la memoria.

fwrite(& head, sizeof(BITMAPINFOHEADER), 1, FP

RGBQUAD * pcolortable

pcolortable = new RGBQUAD[16];< /p); >

int t = 15;

for(int I = 0;i<16;i++)

{

pcolortable[i] . rgbReserved = 0;

pcolortable[i]. RGB azul = I * t;

pcolortable[i]. RGB verde = 0;

pcolortable[i].

rg bred = I * t;

}

fwrite(pcolortable, sizeof(RGBQUAD), 16, FP);

Carbón sin firmar * pbmpbuf

p>

pbmpbuf = nuevo carácter sin firmar[byte de línea * h];

pbmpbuf[0]= 35;

pbmpbuf[1]= 35;

//pbmpbuf[4]= 69;

//pbmpbuf[5]= 103;

//pbmpbuf[8]= 137;

//pbmpbuf[9]= 171;

//pbmpbuf[12]= 205;

//pbmpbuf[13]= 239;

/ / for(I = 0;i<16;i++)

//pbmpbuf[I]= 199;

//Escribir datos de mapa de bits en el archivo

fwrite( pbmpbuf, h*linebyte, 1, FP);

//Cerrar el archivo

fclose(FP);

Devuelve 1;

}

Voy a clase y no veré tu programa. Lo anterior es un programa que escribí para escribir archivos BMP. Mira, eso no es problema.

//Escribir encabezado de archivo

fout.write((char *)&bitmapInfoHead, sizeof(bitmapfile header));

Estás equivocado, es escribir la información del encabezado del archivo BITMAPINFOHEADER.