2012-09-09 11 views
8

Soy un novato en bmp programación y he comprobado este sitio web para aprender acerca de cabecera bmp .. http://www.daubnet.com/en/file-format-bmpmapa de bits tamaño de cabecera del archivo

parece que el encabezado de un archivo BMP es de 54 bytes.

Usando pintura, creé una imagen simple de 10x10, y la guardé en 24 bits. por lo tanto, según las matemáticas simples, el tamaño del archivo debe ser de 10 * 10 * 3 + 54 = 354 bytes.

pero el editor hexadecimal y el explorador de archivos devolvieron un tamaño de 374 bytes.

Así que tengo una diferencia de 20 bytes, y no sé por qué.

¿podría decirme por qué por favor?

muchas gracias !!

+0

¿Acolchado para la alineación? Use 'SizeOf' en lugar de calcularlo usted mismo. (Además, ayuda si menciona el lenguaje de programación que está preguntando, hace que sea mucho más fácil dar una respuesta.) –

+2

Bueno, está usando MSPaint, no un lenguaje de programación :) – nneonneo

+0

@nneonneo: "Soy un novato en la programación de archivos bmp "es la frase inicial de la pregunta. –

Respuesta

10

Las líneas en BMP se rellenan en múltiplos de 4 bytes.

Sin relleno, cada línea es 3 * 10 = 30 bytes. Con el relleno, cada línea tiene 32 bytes, por lo que los datos de la imagen tienen un tamaño de 320 bytes. Por lo tanto, el tamaño del archivo es 54 + 320 = 374 bytes.

+1

Hola, muchas gracias por tu respuesta. Eso tiene sentido ... pero en mi programa, tengo una matriz de 10x10 píxeles, cada píxel es RGB. ¿Entonces tengo un extra de 20 bytes de datos ráster para calcular? Estoy un poco confundido ... ¡gracias de nuevo por tu ayuda! – user1657743

+0

@ user1657743: no tiene que poner nada específico en el relleno; son solo bytes de basura que nadie (excepto los geógrafos estegueros) verá. – nneonneo

Cuestiones relacionadas