Ejercicio
Dimensiones BMP, Uso De Filestream
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 de ejercicio de 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 ejercicio de Python
¡Explora nuestro conjunto de ejercicios de programación Python! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de Python. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en Python.
En este ejercicio, desarrollarás un programa en Python que duplica un archivo fuente a un archivo de destino utilizando FileStream y procesa el archivo en bloques de ...
En este ejercicio, desarrollarás un programa en Python para leer las etiquetas ID3 de un archivo MP3. Este ejercicio es perfecto para practicar el manejo de ar...
En este ejercicio, desarrollarás un programa en Python para dividir un archivo (de cualquier tipo) en segmentos más pequeños de un tamaño especificado. Este ejerci...
En este ejercicio, desarrollarás un programa en Python para cifrar o descifrar un archivo de imagen BMP intercambiando la firma "BM" en los dos primeros bytes con "MB...
En este ejercicio, desarrollarás un programa en Python para leer un archivo CSV que contiene valores separados por comas. Este ejercicio es perfecto para pract...
En este ejercicio, desarrollarás un programa en Python para comparar dos archivos (de cualquier tipo) y determinar si son idénticos (es decir, si tienen el mismo cont...