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

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 tiene una estructura de encabezado específica que incluye varios campos con información acerca de la imagen, como el tipo de archivo, el tamaño del archivo, las dimensiones (ancho y alto), y otros detalles técnicos. En este ejercicio, aprenderás a trabajar con archivos binarios y a leer las estructuras de encabezado de un archivo BMP para extraer información importante.

El programa debe usar un FileStream para abrir el archivo BMP y extraer los datos de las posiciones específicas dentro del encabezado del archivo. En particular, debe leer las posiciones 18-21 para obtener el ancho de la imagen (en píxeles) y las posiciones 22-25 para obtener el alto de la imagen. Esta información es crucial para mostrar las dimensiones de la imagen correctamente.

Además de las dimensiones, el ejercicio te permitirá familiarizarte con otros aspectos del formato BMP, como la compresión de la imagen, la resolución horizontal y vertical, y el tamaño de la tabla de colores. Este ejercicio es ideal para aprender a manejar archivos binarios y obtener información relevante de los archivos de imagen en C#, lo cual puede ser útil en aplicaciones de procesamiento de imágenes o visualización de archivos gráficos.

 Categoría

Administración de Archivos

 Ejercicio

Ancho Y Alto BMP, Filestream

 Objectivo

Cree un programa de C# para mostrar el ancho y el alto de un archivo BMP mediante FileStream.

Recuerda la estructura de la cabecera:

File type (letters BM)
0-1

FileSize
2-5

Reserved
6-7

Reserved
8-9

Start of image data
10-13

Sizeofbitmapheader
14-17

Width (pixels)
18-21

Height (pixels)
22-25

Numberofplanes
26-27

Sizeofeachpoint
28-29

Compression(0=notcompressed)
30-33

Imagesize
34-37

Horizontal resolution
38-41

Verticalresolution
42-45

Sizeofcolortable
46-49

Importantcolorscounter
50-53

 Ejemplo Ejercicio C#

 Copiar Código C#
// Import the necessary namespaces for file handling
using System;
using System.IO;

class BMPDimensions
{
    // Main method where the program starts
    static void Main(string[] args)
    {
        // Prompt the user to enter the path of the BMP file
        Console.WriteLine("Enter the path of the BMP file:");

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

        // Check if the file exists
        if (File.Exists(filePath))
        {
            try
            {
                // Open the BMP file for reading in binary mode
                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    // Create a binary reader to read the BMP file data
                    using (BinaryReader reader = new BinaryReader(fs))
                    {
                        // Read the 'BM' file type (2 bytes) to confirm it's a BMP file
                        string fileType = new string(reader.ReadChars(2));
                        if (fileType != "BM")
                        {
                            Console.WriteLine("This is not a valid BMP file.");
                            return;
                        }

                        // Skip to the width and height data in the BMP header
                        reader.BaseStream.Seek(18, SeekOrigin.Begin);

                        // Read the width and height (4 bytes each)
                        int width = reader.ReadInt32();
                        int height = reader.ReadInt32();

                        // Display the width and height of the BMP image
                        Console.WriteLine("Width: " + width + " pixels");
                        Console.WriteLine("Height: " + height + " pixels");
                    }
                }
            }
            catch (Exception ex)  // Catch any errors that occur during reading
            {
                // Output an error message if an exception is thrown
                Console.WriteLine("An error occurred: " + ex.Message);
            }
        }
        else
        {
            // Inform the user if the specified file doesn't exist
            Console.WriteLine("The specified file does not exist.");
        }
    }
}

 Salida

Example: If the BMP file has a width of 400 pixels and height of 300 pixels, the output will be:
Width: 400 pixels
Height: 300 pixels

If the user provides a file path to a non-BMP file, the program will output:
This 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#.

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

  •  Divisor de archivos

    Este ejercicio consiste en crear un programa que divida un archivo (de cualquier tipo) en partes de un tamaño específico. El programa debe recibir como parámetros el nombre ...

  •  Cifrar un archivo BMP

    Este ejercicio consiste en crear un programa que encripte y desencripte un archivo de imagen BMP cambiando la marca "BM" en los primeros dos bytes a "MB" y viceversa. Para e...

  •  Conversor CSV

    Este ejercicio consiste en crear un programa que lea un archivo CSV con cuatro bloques de datos separados por comas (tres de texto y uno numérico) y genere un archivo de tex...