#include <stdio.h>
char nombre[60];
int main(){
int opcion;
char number[3];
FILE* fichero;
int compresion,ancho,alto,tamano,color,pcx;
char version[3];
char marca1,marca2,marca3;
printf("1º OPCION PARA BMP\n 2ºOPCION PARA GIF\n 3ºopcion para pcx");
gets(number);
sscanf(number,"%d",&opcion);
switch(opcion){
case 1:
puts("Comprobacion de imagen BMP\n");
printf("Seleccione archivo");
gets(nombre);
fichero= fopen(nombre,"rb");
if(fichero==NULL){
puts("no encontrado o no existe");
}
else{
marca1 =fgetc(fichero);
marca2 = fgetc(fichero);
if((marca1=='B')&&(marca2=='M'))
{
printf("Marca del fichero: %c%c\n",marca1,marca2);
fseek(fichero,18,SEEK_SET);
fread(&ancho,1,4,fichero);
printf("Ancho:%d\n",ancho);
fread(&alto,1,4,fichero);
printf("alto:%d\n",alto);
fseek(fichero,4,SEEK_CUR);
fread(&compresion,1,4,fichero);
printf("tamano :%d\n",compresion);
fseek(fichero,2,SEEK_SET);
fread(&tamano,1,4,fichero);
printf("su tamano es:%d\n",tamano);
fclose(fichero);
switch(compresion)
{
case 0: printf("Sin compresion"); break;
case 1: printf("Compresion RLE 8 bits"); break;
case 2: printf("Compresion RLE 4bits"); break;
case 3:puts("codificacion mascara de bits"); break;
}
}
else
printf("bmp no detectado");
}
break;
case 2:
printf("Ha elegido GIF\n");
printf("Introduzca el nombre.gif");
gets(nombre);
fichero= fopen(nombre,"rb");
if(fichero==NULL){
puts("no encontrado o no existe");
}
else{
marca1 =fgetc(fichero);
marca2 = fgetc(fichero);
marca3 = fgetc(fichero);
if((marca1=='G')&&(marca2=='I')&&(marca3=='F'))
{
printf("Marca del fichero: %c%c%c\n",marca1,marca2,marca3);
fseek(fichero,6,SEEK_SET);
fread(&ancho,1,2,fichero);
printf("Ancho:%d\n",ancho);
fseek(fichero,8,SEEK_SET);
fread(&alto,1,2,fichero);
printf("alto:%d\n",alto);
fseek(fichero,3,SEEK_SET);
fread(&version,1,3,fichero);
printf("version :%s\n",version);
fseek(fichero,10,SEEK_SET);
fread(&color,1,1,fichero);
printf("tiene:%d colores\n",color);
fclose(fichero);
}
else
printf("gif no detectado");
}
break;
case 3:
printf("HAS SELECCIONADO PCX\n");
int ancho_MIN,ancho_MAX,alto_MAX,alto_MIN,versions;
printf("Selecciona archivo\n");
gets(nombre);
fichero= fopen(nombre,"rb");
if(fichero==NULL){
puts("Te has equivocado o no existe");
}
else{
pcx =fgetc(fichero);
if(pcx==10)
printf("Correcto\n");
fseek(fichero,1,SEEK_SET);
fread(&versions,1,1,fichero);
if(versions==0){
printf("2.5\n");
}
else if(versions==2){
printf("2.8\n");
}
else if(versions==3){
printf("2.8+ paleta\n");
}
else if(versions==4){
printf("paitbrush\n");
}
else if(versions==5){
printf("3.0, superior\n");
}
else{
printf("DAFUQ\n");
}
fseek(fichero,4,SEEK_SET);
fread(&ancho_MIN,2,1,fichero);
printf("ancho minimo %d\n",ancho_MIN);
/////////
fseek(fichero,6,SEEK_SET);
fread(&alto_MIN,2,1,fichero);
printf("alto minimo %d\n",alto_MIN);
////////////////////
fseek(fichero,8,SEEK_SET);
fread(&ancho_MAX,2,1,fichero);
printf("ancho maximo %d\n",ancho_MAX);
////////////////
fseek(fichero,10,SEEK_SET);
fread(&alto_MAX,2,1,fichero);
printf("alto maximo %d\n",alto_MAX);
///////////////////
printf("\\\\\\\\\\\\\\\\\n");
printf("la anchura es: %d\n",ancho_MAX-ancho_MIN+1);
printf("la altura es: %d\n",alto_MAX-alto_MIN+1);
}
return 0;
}
}