- Curso
- Archivos binarios
- Leer dimensiones de imagen BMP
Leer dimensiones de imagen BMP
Última actualización:
23/08/2020
⁃
Dificultad:
Intermedio
Cree un programa en C# para leer las dimensiones de una imagen con formato Windows bitmap. Primero debería comprobar que se trata de una imagen .bmp válida, revisando los datos de cabecera 'BM'. Si se trata de una imagen .bmp válida entonces obtenga sus dimensiones (ancho x alto) y muéstrelas en pantalla.
Es un formato propio del sistema operativo Windows. Puede guardar imágenes hasta 24 bits (16,7 millones de colores).
El encabezado de una imagen BMP es el siguiente:
Descripción | Bytes |
Tipo (BM) | 0-1 |
Tamaño | 2-5 |
Reservado | 6-9 |
Inicio de los datos de la imagen | 10-13 |
Tamaño del bitmap | 14-17 |
Ancho (píxeles) | 18-21 |
Alto (píxeles) | 22-25 |
Número de planos | 26-27 |
Tamaño de cada punto | 28-29 |
Compresión | 30-33 |
Tamaño de imagen | 34-37 |
Resolución horizontal | 38-41 |
Resolución vertical | 42-45 |
Tamaño de la tabla de color | 46-49 |
Contador de colores | 50-53 |
Entrada
Salida
48x48
Solución
using System;
using System.IO;
public class LeerDimensionesImagenBMP
{
public static void Main(string[] args)
{
string nombreArchivo = "logo.bmp";
int tamanyo = 54, ancho, alto;
byte[] datos = new byte[tamanyo];
using (FileStream archivo = File.OpenRead(nombreArchivo))
{
archivo.Read(datos, 0, tamanyo);
}
if (datos[0] != 'B' || datos[1] != 'M')
{
return; // No es un archivo BMP
}
ancho = datos[18] + (datos[19] * 256) +
(datos[20] * 256 * 256) +
(datos[21] * 256 * 256 * 256);
alto = datos[22] + (datos[23] * 256) +
(datos[24] * 256 * 256) +
(datos[25] * 256 * 256 * 256);
Console.WriteLine("{0}x{1}", ancho, alto);
}
}