Programa C para verificar si el archivo es un archivo JPEG o no

Escriba un programa en C que ingrese un archivo como argumentos de línea de comandos y detecte si el archivo es JPEG (Grupo Conjunto de Expertos Fotográficos) o no.

Acercarse:

  1. Daremos una imagen como argumento de línea de comando mientras ejecutamos el código.
  2. Lea los primeros tres bytes de la imagen dada (archivo).
  3. Después de leer los bytes del archivo, compárelo con la condición del archivo JPEG, es decir, si el primer, segundo y tercer byte del archivo dado es 0xff , 0xd8 y 0xff respectivamente, entonces el archivo dado es un archivo JPEG .
  4. De lo contrario, no es un archivo JPEG .

A continuación se muestra la implementación del enfoque anterior:

// C program for the above approach
#include <ctype.h>
#include <stdio.h>
#include <string.h>
  
// Driver Code
int main(int argc, char* argv[])
{
    // If number of command line
    // argument is not 2 then return
    if (argc != 2) {
        return 1;
    }
  
    // Take file as argument as an
    // input and read the file
    FILE* file = fopen(argv[1], "r");
  
    // If file is NULL return
    if (file == NULL) {
        return 1;
    }
  
    // Array to store the char bytes
    unsigned char bytes[3];
  
    // Read the file bytes
    fread(bytes, 3, 1, file);
  
    // Condition for JPEG image
  
    // If the given file is a JPEG file
    if (bytes[0] == 0xff
        && bytes[1] == 0xd8
        && bytes[1] == 0xff) {
  
        printf("This Image is "
               "in JPEG format!");
    }
  
    // Else print "No"
    else {
  
        printf("No");
    }
  
    return 0;
}

Producción:

Publicación traducida automáticamente

Artículo escrito por akhilsharma870 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *