Una imagen BMP (DIB) está compuesta por un encabezado seguido de datos de 1 color sin comprimir (para imágenes de 24 bpp son 3 bytes por píxel, almacenados en orden inverso de fila y con 4 bytes de paso de fila).
Los bytes para los datos de color se utilizan para representar colores (es decir, ninguno de ellos es "obligatorio" por el formato de archivo 2 , todos provienen del color de cada píxel), y hay una correspondencia perfecta 1: 1 entre los colores de los píxeles y los bytes escritos en el archivo; por lo tanto, utilizando colores perfectamente elegidos, puede escribir lo que quiera en el archivo (con la excepción del encabezado).
Cuando abre el archivo generado en el bloc de notas, los datos de color se mostrarán como texto; todavía puede ver claramente desde el encabezado (la parte desde BM
el comienzo del texto), que es obligatorio por el formato de archivo.
En mi opinión, este video se hizo de esta manera: primero, el autor calculó el tamaño necesario para el mapa de bits y creó un archivo DIB del tamaño correcto relleno con un color que se expande a un patrón simple (por ejemplo, todos los bytes 65 => 'A'
); luego reemplazó dicho patrón con el código de "carga útil", como se muestra en el video.
Sin embargo, tenga en cuenta que no es imposible crear todo a mano con el bloc de notas: con el cuadro de diálogo del selector de color, una tabla ASCII y un conocimiento básico del formato DIB, se puede hacer, pero sería mucho más lento y propenso a errores.
Más información sobre el formato DIB
- Hay DIB comprimidos RLE, pero en este caso se utilizan mapas de bits sin comprimir (y de todos modos se utilizan muy raramente).
- Con la excepción de la zancada, eso se evitó usando filas múltiples de 4 bytes.