#include #include #include #include "libbmp.h" unsigned int SIZEHEADER; unsigned int SIZEPIX; byte *readFile (char *path, unsigned int *size) { //lecture du fichier FILE *fichier = NULL; fichier = fopen (path, "rb");//"rb"=ouvert en mode binaire //Vérification de la présence du fichier if(fichier==NULL) { printf("[ERREUR] Aucun fichier n'est lu\n"); } else { printf("[OK] Lecture du fichier\n"); } //Taille du fichier fseek(fichier,0,SEEK_END); //déplacement du ptr à la fin à partir case 0 if (*size==0) { *size = ftell(fichier); //retourne position ptr dans fichier } rewind(fichier); //remet ptr au début du fichier if(*size!=0) { printf("[OK] Détermination de la taille du fichier\n"); printf(" Taille = %d octets\n", *size); } else { printf("[ERREUR] Détermination de la taille du fichier\n"); } //Déclaration tableau dynamique taboctet, *size élément à allouer de taille byte byte *tab; tab = (byte*) calloc (*size, sizeof(byte)); //Récupération données du fichier fread (tab, 1, *size, fichier); //fermeture du fichier fclose(fichier); return tab; } int writeFile (char *path, byte *array, unsigned int size) { //lecture du fichier FILE *fichier = NULL; fichier = fopen (path, "wb");//"wb"=fichier ouvert en mode binaire //Vérification de la présence du fichier if(fichier==NULL) { printf("[ERREUR] Aucun fichier ne peut être écrit\n"); } else { printf("[OK] Ecriture du fichier\n"); } //Ecriture sur le fichier, 1=>bitparbit, sizeof(byte)=>nbr case mem taille byte fwrite(array, 1, size, fichier); fclose(fichier); return 0; } int readValue (byte *array, int length, unsigned int *value) { int i; for(i=0; i