Code Source
Ne pas oublier que pour lancer la transformation il faut faire un glissé-déposé du fichier bitmap.
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main(int argc, char *argv[])
{
FILE *fh1;
FILE *fh2;
char ext_1,ext_2,ext_3;
char *filename2;
int ch;
int postexte;
int A,B,C;
int compte=53;
if ((fh1 = fopen(argv[1], "rb")) == NULL)
{
fprintf(stderr, "\nErreur durant l'ouverture du fichier en lecture...");
}
printf("\nFichier qui va etre restaure :\n");
printf("-------> %s\n",argv[1]);
filename2=argv[1];
postexte=0;
while ( filename2[postexte] != '\0')
{
postexte++;
}
ext_1=filename2[postexte-3];
ext_2=filename2[postexte-2];
ext_3=filename2[postexte-1];
filename2[postexte-4]='_';
filename2[postexte-3]='$';
filename2[postexte-2]='.';
filename2[postexte-1]=ext_1;
filename2[postexte-0]=ext_2;
filename2[postexte+1]=ext_3;
filename2[postexte+2]='\0';
printf("\nFichier qui va etre cree :\n");
printf("-------> %s\n",filename2);
printf("\n");
A=0;
B=0;
C=0;
puts("\nIndiquez les trois parametres R,V,B : ***;***;*** ");
printf("\n -> ");
scanf("%i;%i;%i;",&A,&B,&C);
A=A;
B=B;
C=C;
if ((fh2 = fopen(filename2, "wb")) == NULL)
{
fprintf(stderr, "\nErreur durant l'ouverture du fichier en ecriture...");
exit(1);
}
while( !feof( fh1 ) )
{
while( compte>=0 || feof(fh1) )
{
ch = getc( fh1 );
if( !feof(fh1) == 0 ){return(0);}
fprintf(fh2, "%c", ch);
compte--;
}
ch = getc( fh1 );
ch=ch+(ch-A);
if (ch<0)ch=0;
if (ch>255)ch=255;
fprintf(fh2, "%c", ch);
if( !feof(fh1) == 0 ){return(0);}
ch = getc( fh1 );
ch=ch+(ch-B);
if (ch<0)ch=0;
if (ch>255)ch=255;
fprintf(fh2, "%c", ch);
if( !feof(fh1) == 0 ){return(0);}
ch = getc( fh1 );
ch=ch+(ch-C);
if (ch<0)ch=0;
if (ch>255)ch=255;
fprintf(fh2, "%c", ch);
if( !feof(fh1) == 0 ){return(0);}
}
fclose( fh1 );
fclose( fh2 );
return 0;
}
|