Ancho Y Alto BMP, Binaryreader - Ejercicio De Programacion C# Sharp

Este ejercicio en C# consiste en crear un programa que muestre el ancho y la altura de un archivo BMP utilizando un BinaryReader. El programa debe leer el encabezado del archivo BMP y extraer la información correspondiente al ancho y la altura de la imagen. El archivo BMP tiene una estructura de encabezado específica que contiene varias posiciones con información importante, como el tipo de archivo, el tamaño del archivo, el inicio de los datos de la imagen, y las dimensiones (ancho y altura). Este ejercicio es excelente para aprender a trabajar con BinaryReader en C#, lo que es útil para manipular archivos binarios y procesar datos de manera eficiente.

El encabezado de un archivo BMP tiene varias posiciones clave que contienen información importante sobre la imagen, tales como el ancho y la altura. El programa debe leer estas posiciones utilizando un BinaryReader para obtener la información sobre el ancho y la altura de la imagen. El ejercicio te ayudará a comprender cómo leer y extraer datos de un archivo binario y a familiarizarte con la estructura interna de un archivo BMP.

Recuerda que el programa debe ser capaz de leer el archivo BMP, identificar las posiciones clave dentro del encabezado y extraer correctamente los valores del ancho y la altura. Este ejercicio también te ayudará a mejorar tus habilidades en el manejo de archivos binarios y a utilizar herramientas como el BinaryReader en C# para acceder a datos específicos en archivos.

 Categoría

Administración de Archivos

 Ejercicio

Ancho Y Alto BMP, Binaryreader

 Objectivo

Vuelva a crear un programa de C# para mostrar el ancho y el alto de un archivo BMP mediante un BinaryReader.

La estructura del encabezado de un archivo BMP es:

Tipo de archivo (letras BM)
0-1

Tamaño de archivo
2-5

Reservado
6-7

Reservado
8-9

Inicio de los datos de imagen
10-13

Sizeofbitmapheader
14-17

Ancho (píxeles)
18-21

Altura (píxeles)
22-25

Número de aviones
26-27

Tamañode cada punto
28-29

Compresión (0 = no comprimida)
30-33

Tamaño de imagen
34-37

Resolución horizontal
38-41

Resolución vertical
42-45

Tamañodecolorable
46-49

Importantcolorscounter
50-53

 Ejemplo Ejercicio C#

 Copiar Código C#
// Import the System namespace for basic functionality
using System;  

// Import the IO namespace for file handling
using System.IO;  

// Create the class to read BMP file header
class BMPReader
{
    // Main method where the program starts
    static void Main(string[] args)
    {
        // Ask the user for the BMP file path
        Console.WriteLine("Enter the path of the BMP file:");  

        // Get the file path from the user
        string filePath = Console.ReadLine();  

        // Start of try block to handle any file or reading errors
        try
        {
            // Open the BMP file with BinaryReader to read the binary data
            using (BinaryReader reader = new BinaryReader(File.Open(filePath, FileMode.Open)))
            {
                // Check if the first two bytes are 'BM' to validate it as a BMP file
                if (reader.ReadByte() == 0x42 && reader.ReadByte() == 0x4D)
                {
                    // Skip the file size and reserved bytes (2 to 9)
                    reader.BaseStream.Seek(8, SeekOrigin.Begin);  

                    // Skip to the position where the width is stored (18-21)
                    int width = reader.ReadInt32();  

                    // Skip to the position where the height is stored (22-25)
                    int height = reader.ReadInt32();  

                    // Display the width and height of the BMP file
                    Console.WriteLine("Width: " + width + " pixels");
                    Console.WriteLine("Height: " + height + " pixels");
                }
                else
                {
                    // If the file is not a valid BMP file, inform the user
                    Console.WriteLine("The file is not a valid BMP file.");
                }
            }
        }
        catch (Exception ex)  // Catch any exceptions that may occur during file reading
        {
            // Print the exception message if an error occurs
            Console.WriteLine("An error occurred: " + ex.Message);  
        }
    }
}

 Salida

For a valid BMP file with a width of 800 pixels and a height of 600 pixels, the output would look like:
Enter the path of the BMP file: C:\images\picture.bmp
Width: 800 pixels
Height: 600 pixels

If the file is not a valid BMP file, the output will be:
Enter the path of the BMP file: C:\images\notbmp.txt
The file is not a valid BMP file.

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Administración de Archivos

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. 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 C#.

  •  Conversor de TXT a HTML

    Este ejercicio en C# consiste en crear un "convertidor de texto a HTML". El programa debe leer un archivo de texto de entrada y crear un archivo HTML a partir de su c...

  •  Invertir archivo binario V2

    Este ejercicio en C# consiste en crear un programa que "invierta" un archivo utilizando un FileStream. El programa debe crear un archivo con el mismo nombre qu...

  •  Ancho y alto BMP, FileStream

    Este ejercicio en C# consiste en crear un programa que lea un archivo BMP utilizando un FileStream y muestre su ancho y alto. El formato BMP tien...

  •  Copiador de archivos

    Este ejercicio en C# consiste en crear un programa que copie un archivo de origen a un archivo de destino utilizando un FileStream y un tamaño de bloque de 512...

  •  Lector de MP3

    Este ejercicio en C# trata sobre las especificaciones ID3, que se aplican a cualquier archivo o contenedor audiovisual, pero se utilizan principalmente con contenedor...

  •  Conversor de C a C#

    Este ejercicio consiste en crear un programa que convierta programas simples en C a C#, como el siguiente ejemplo, asegurando que el programa resultante compil...