Mostrar BMP en la consola - Python Programming Exercise

En este ejercicio, desarrollarás un programa en Python para decodificar y mostrar un archivo de imagen Netpbm. Este ejercicio es perfecto para practicar el manejo de archivos, la manipulación de cadenas y los bucles en Python. Al implementar este programa, obtendrás experiencia práctica en el manejo de operaciones de archivos, manipulación de cadenas y bucles en Python. Este ejercicio no solo refuerza tu comprensión del manejo de archivos, sino que también te ayuda a desarrollar prácticas de codificación eficientes para gestionar las interacciones con el usuario. Además, este ejercicio proporciona una excelente oportunidad para explorar la versatilidad de Python en aplicaciones del mundo real. Al trabajar con el manejo de archivos, la manipulación de cadenas y los bucles, aprenderás a estructurar tu código de manera eficiente, lo cual es una habilidad crucial en muchos escenarios de programación. Este ejercicio también te anima a pensar críticamente sobre cómo estructurar tu código para la legibilidad y el rendimiento, convirtiéndolo en una valiosa adición a tu portafolio de programación. Ya seas un principiante o un programador experimentado, este ejercicio te ayudará a profundizar tu comprensión de Python y mejorar tus habilidades para resolver problemas.

 Categoría

Administrar archivos

 Ejercicio

Mostrar BMP En La Consola

 Objectivo

Desarrollar un programa Python para decodificar y mostrar un archivo de imagen Netpbm

El formato Netpbm es una familia de formatos de imagen diseñados para la simplicidad en lugar del tamaño del archivo. Estos formatos pueden representar imágenes en color, escala de grises o en blanco y negro mediante texto simple, aunque también existen versiones binarias.

Por ejemplo, una imagen en blanco y negro codificada en ASCII utiliza el encabezado "P1".

El archivo puede contener opcionalmente una línea de comentario que comience con #.

A continuación, las dimensiones de la imagen (ancho y alto) se enumeran en la siguiente línea.

Las líneas restantes contienen los datos de píxeles: 1 representa el negro y 0 representa el blanco. Por ejemplo:

P1
Este es un mapa de bits de ejemplo de la letra "J"
6 10
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
1 0 0 0 1 0
0 1 1 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0

Cree un programa Python para decodificar este tipo de archivo de imagen y mostrar su contenido en la consola. Tenga en cuenta que el comentario es opcional.

 Ejemplo de ejercicio de Python

 Copiar código Python
# Python program to decode and display a Netpbm image (P1 format) from a file

def decode_netpbm(file_path):
    try:
        # Open the Netpbm file
        with open(file_path, 'r') as file:
            # Read the first line (P1 header)
            header = file.readline().strip()
            if header != 'P1':
                print("Error: This is not a valid P1 Netpbm image.")
                return
            
            # Skip comment lines (if present)
            while True:
                line = file.readline().strip()
                if line and not line.startswith('#'):
                    # This is the line with image dimensions (width and height)
                    width, height = map(int, line.split())
                    break
            
            # Read and display the pixel data
            print(f"Image dimensions: {width}x{height}")
            print("Image Data:")
            for _ in range(height):
                row = file.readline().strip().split()
                # Convert 0 to 'White' and 1 to 'Black' and display it
                print(' '.join('Black' if pixel == '1' else 'White' for pixel in row))
    
    except FileNotFoundError:
        print(f"Error: The file '{file_path}' was not found.")
    except Exception as e:
        print(f"Error: {str(e)}")

# Example usage
decode_netpbm('image.pbm')

 Output

Example Input (image.pbm):

P1
# This is an example bitmap of the letter "J"
6 10
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
1 0 0 0 1 0
0 1 1 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0

Example Output:

Image dimensions: 6x10
Image Data:
White White White White Black White
White White White White Black White
White White White White Black White
White White White White Black White
White White White White Black White
White White White White Black White
Black White White White Black White
White Black Black Black White White
White White White White White White
White White White White White White

 Comparte este ejercicio de Python

 Más Ejercicios Programación Python de Administrar archivos

¡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.

  •  Extraer información de texto de un archivo binario

    En este ejercicio, desarrollarás un programa en Python para extraer solo los caracteres alfabéticos contenidos en un archivo binario y volcarlos en un archivo separad...

  •  Vertedero

    En este ejercicio, desarrollarás un programa en Python para crear una utilidad de "volcado": un visor hexadecimal que muestra el contenido de un archivo, con 16 bytes...

  •  Filtro de texto

    En este ejercicio, desarrollarás un programa en Python para crear una utilidad que censure archivos de texto. Este ejercicio es perfecto para practicar el mane...

  •  SQL a texto sin formato

    En este ejercicio, desarrollarás un programa en Python para analizar comandos SQL INSERT y extraer sus datos en líneas de texto separadas. Este ejercicio es pe...

  •  Visor de imágenes PGM

    En este ejercicio, desarrollarás un programa en Python para crear una utilidad que lea y muestre imágenes en formato PGM, que es una versión de los formatos de imagen...

  •  Visor BMP de consola V2

    En este ejercicio, desarrollarás un programa en Python para crear una utilidad que muestre un archivo BMP de 72x24 en la consola. Este ejercicio es perfecto pa...