Objectivo
Desarrollar un programa Python para mostrar el ancho y la altura de un archivo de imagen BMP mediante un `FileStream`. El programa debe leer el archivo BMP y extraer la información de su encabezado.
La estructura del encabezado BMP a seguir es:
- Tipo de archivo ("BM") en las posiciones 0-1
- Tamaño del archivo en las posiciones 2-5
- Reservado en las posiciones 6-7
- Reservado en las posiciones 8-9
- Inicio de los datos de la imagen en las posiciones 10-13
- Tamaño del encabezado del mapa de bits en las posiciones 14-17
- Ancho (píxeles) en las posiciones 18-21
- Alto (píxeles) en las posiciones 22-25
- Número de planos en las posiciones 26-27
- Tamaño de cada píxel en las posiciones 28-29
- Compresión (0 = sin comprimir) en las posiciones 30-33
- Tamaño de la imagen en las posiciones 34-37
- Resolución horizontal en las posiciones 38-41
- Resolución vertical en las posiciones 42-45
- Tamaño de la tabla de colores en las posiciones 46-49
- Contador de colores importantes en las posiciones 50-53
El programa debe imprimir el ancho y el alto de la imagen en la pantalla. Puede utilizar las bibliotecas integradas de Python como "open()" para leer datos binarios del archivo y buscar posiciones de bytes específicas.
Ejemplo Ejercicio Python
Mostrar Código Python
# Python program to display the width and height of a BMP image file
def get_bmp_dimensions(file_path):
try:
# Open the BMP file in binary read mode
with open(file_path, 'rb') as bmp_file:
# Seek to the position where width (18-21) and height (22-25) are located
bmp_file.seek(18)
# Read the width (4 bytes)
width = int.from_bytes(bmp_file.read(4), byteorder='little')
# Read the height (4 bytes)
height = int.from_bytes(bmp_file.read(4), byteorder='little')
# Print the width and height of the BMP image
print(f"Width: {width} pixels")
print(f"Height: {height} pixels")
except Exception as e:
print(f"Error reading the file: {e}")
# Example usage
get_bmp_dimensions("example.bmp")
Output
Width: 800 pixels
Height: 600 pixels
Código de Ejemplo copiado
Comparte este ejercicios Python