Validador De Archivos De Imagen BMP En C#

Este programa comprueba si un archivo de imagen BMP parece correcto verificando su encabezado. En concreto, comprueba si los dos primeros bytes del archivo coinciden con los códigos ASCII de las letras "B" y "M" (0x42 y 0x4D). Estos dos bytes constituyen la firma utilizada en los archivos BMP para identificarlos. Si el archivo supera esta comprobación, el programa indicará que probablemente sea un archivo BMP válido. De lo contrario, informará al usuario de que podría no ser una imagen BMP válida.



Grupo

Manejo de archivos en C#

Objectivo

1. El programa debe aceptar el nombre de archivo de la imagen BMP.
2. Abrirá el archivo en modo binario y comprobará si los dos primeros bytes son 0x42 (B) y 0x4D (M).
3. Si los bytes coinciden, el programa imprimirá un mensaje confirmando que el archivo parece ser un archivo BMP válido.
4. Si los bytes no coinciden, el programa informará al usuario que el archivo podría no ser una imagen BMP válida.

Cree un programa en C# para comprobar si un archivo de imagen BMP parece correcto. Debe comprobar si los dos primeros bytes son B y M (códigos ASCII 0x42 y 0x4D).

Ejemplo de ejercicio en C#

 Copiar código C#
using System;
using System.IO;

class BMPValidator
{
    // Main method: entry point of the program
    static void Main(string[] args)
    {
        // Check if the user has provided a file name
        if (args.Length == 1)
        {
            string fileName = args[0];  // The file name passed as an argument

            // Call the method to validate the BMP file
            bool isValidBMP = ValidateBMPFile(fileName);

            // Display the result based on the validation
            if (isValidBMP)
            {
                Console.WriteLine("The file is a valid BMP image.");
            }
            else
            {
                Console.WriteLine("The file is not a valid BMP image.");
            }
        }
        else
        {
            Console.WriteLine("Please provide the file name of the BMP image.");
        }
    }

    // Method to check if the file is a valid BMP file based on the first two bytes
    static bool ValidateBMPFile(string fileName)
    {
        try
        {
            // Open the file in binary mode and read the first two bytes
            using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
            {
                byte[] header = new byte[2];
                fs.Read(header, 0, 2);  // Read the first two bytes of the file

                // Check if the first two bytes are 0x42 (B) and 0x4D (M)
                if (header[0] == 0x42 && header[1] == 0x4D)
                {
                    return true;  // The file starts with "BM", so it is likely a BMP file
                }
                else
                {
                    return false;  // The file does not start with "BM", so it is not a BMP file
                }
            }
        }
        catch (Exception ex)
        {
            // Handle any exceptions that might occur (e.g., file not found, access errors)
            Console.WriteLine($"Error: {ex.Message}");
            return false;
        }
    }
}

 Output

//When run with parameters:
bmpValidator image.bmp
The file is a valid BMP image.

//If the file doesn't match the BMP header:
bmpValidator nonImage.txt
The file is not a valid BMP image.

Comparte este ejercicio de C#

Practica más ejercicios C# de Manejo de archivos en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..