Ejercicio
Dimensiones BMP Con Binaryreader
Objectivo
Desarrollar un programa Python para leer las dimensiones (ancho y alto) de un archivo BMP utilizando un enfoque similar a BinaryReader.
Un archivo BMP tiene una estructura de encabezado específica que incluye lo siguiente:
- "BM" en las posiciones 0-1, indicando el tipo de archivo.
- El tamaño del archivo está en las posiciones 2-5.
- El espacio reservado está en las posiciones 6-7 y 8-9.
- Los datos de la imagen comienzan en las posiciones 10-13.
- El tamaño del encabezado de mapa de bits está entre las posiciones 14-17.
- El ancho (en píxeles) está ubicado en las posiciones 18-21.
- La altura (en píxeles) está ubicada en las posiciones 22-25.
- El conteo de planos está en las posiciones 26-27.
- El tamaño de cada punto se puede encontrar en las posiciones 28-29.
- El tipo de compresión (0 significa sin compresión) está ubicado en las posiciones 30-33.
- El tamaño de la imagen está en las posiciones 34-37.
- La resolución horizontal se encuentra entre las posiciones 38-41.
- La resolución vertical se encuentra entre las posiciones 42-45.
- El tamaño de la tabla de colores se encuentra entre las posiciones 46-49.
Utilizando estas posiciones, el programa debe leer y mostrar el ancho y alto de la imagen BMP.
Ejemplo de ejercicio de Python
Mostrar código Python
# This program reads the width and height of a BMP image by parsing its header structure.
import struct
def read_bmp_dimensions(filename):
try:
# Open the BMP file in binary mode
with open(filename, 'rb') as file:
# Read the first 18 bytes to extract the relevant information
header = file.read(18)
# Check if the file is a valid BMP file by verifying "BM" signature
if header[:2] != b'BM':
print("The file is not a valid BMP file.")
return
# Extract the width and height from the header (positions 18-21 for width and 22-25 for height)
width, height = struct.unpack('
Output
Width: 800 pixels
Height: 600 pixels
Código de ejemplo copiado
Comparte este ejercicio de Python