
mikax31
|
Réponse acceptée !
Bon beh voilà, sujet résolu, je pars du principe que je connais les dimensions de l'image. voila le code si ça interesse quelqu'un !
#include <stdio.h> #include <stdlib.h>
#define HEIGHT 768 #define WIDTH 1024
int main(int argc, char *argv[]) { FILE* fichierSource = NULL; FILE* fichierDest = NULL; char octet, signature, signature2; int taillefich, champ, offset, tailleEntete, largeur, hauteur, nbPlan, prof, compr, tailleImg, resH, resV, nbCoul, nbImp; fichierSource = fopen("RawDatalion1024x768", "rb"); fichierDest = fopen("Img.bmp", "wb"); if ((fichierSource != NULL )&&(fichierDest != NULL)) { //creation de l'entete signature=0x42; signature2=0x4D;// car bmp windows taillefich=14+40+(HEIGHT*WIDTH*3);//car 3 octet par pixel champ=0; offset=14+40; tailleEntete=40; largeur=WIDTH; hauteur=HEIGHT; nbPlan=1; prof=24; compr=0; tailleImg=(HEIGHT*WIDTH*3); resH=0; resV=0; nbCoul=0; nbImp=0; //FILE HEADER fwrite(&signature, sizeof(char), 1, fichierDest); fwrite(&signature2, sizeof(char), 1, fichierDest);//la signature entiere fait donc 2 octet fwrite((char*)&taillefich, sizeof(char), 4, fichierDest);//taille sur 4 octets... fwrite((char*)&champ, sizeof(char), 4, fichierDest); fwrite((char*)&offset, sizeof(char), 4, fichierDest); //Pic Header fwrite((char*)&tailleEntete, sizeof(char), 4, fichierDest); fwrite((char*)&largeur, sizeof(char), 4, fichierDest); fwrite((char*)&hauteur, sizeof(char), 4, fichierDest); fwrite((char*)&nbPlan, sizeof(char), 2, fichierDest); fwrite((char*)&prof, sizeof(char), 2, fichierDest); fwrite((char*)&compr, sizeof(char), 4, fichierDest); fwrite((char*)&tailleImg, sizeof(char), 4, fichierDest); fwrite((char*)&resH, sizeof(char), 4, fichierDest); fwrite((char*)&resV, sizeof(char), 4, fichierDest); fwrite((char*)&nbCoul, sizeof(char), 4, fichierDest); fwrite((char*)&nbImp, sizeof(char), 4, fichierDest); //reccopie des données brutes fread(&octet,sizeof(char),1,fichierSource); while(feof(fichierSource)==0) { fwrite(&octet, sizeof(char), 1, fichierDest); fread(&octet,sizeof(char),1,fichierSource); } } else { printf("Ouverture des fichiers impossible!\n "); } fclose(fichierSource); fclose(fichierDest); system("PAUSE"); return 0; }
|