begin process at 2012 05 29 22:46:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

Probleme utilisation fwrite sur un fichier partager réseau.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme utilisation fwrite sur un fichier partager réseau.

jeudi 29 septembre 2005 à 14:50:48 | Probleme utilisation fwrite sur un fichier partager réseau.

chuckboy

Voila j'ai une fonction qui doit prendre deux images , les comparer et creer une image delta pour cibler les différence entre les deux images. Mon probleme c'est que ca fonctionne tres bien sur mon pc l'image se modifie mais quand j'arrive sur un lecteur réseau partager d'un autre poste (les droits me semble correct) je réussit à creer mon image delta mais pas a modifier les pixel avec la fonction fwrite.

Pourtant la fonction fwrite ne m'envoit pas de message d'erreur et le comportement du programme est le même quand je suis sur mon pc ou sur le réseau.

Quelqu'un a une idée pour moi ?


void CreateDelta(const std::string sFichierAbsolut1,const std::string sFichierAbsolut2,
     const std::string sRepertoireDelta,const std::string sFichier1)
{
 BITMAPFILEHEADER bmfh1;
 BITMAPFILEHEADER bmfh2;
 BITMAPFILEHEADER bmfhDelta;
 
 int i;
 int j=0;

 std::string sFichierDelta;

 FILE *image1;
 FILE *image2;
 FILE *imagedelta;

 sFichierDelta=sRepertoireDelta + "\\Delta-" + sFichier1;
 CopyFile (sFichierAbsolut1.c_str(), sFichierDelta.c_str(), true);

 //Ouverture des deux fichiers
 image1=fopen(sFichierAbsolut1.c_str(),"r+b");
 image2=fopen(sFichierAbsolut2.c_str(),"r+b");
 imagedelta=fopen(sFichierDelta.c_str(),"r+b");

 cout << imagedelta << endl;

 fseek(image1, SEEK_SET, 0) ;
 fseek(image2, SEEK_SET, 0) ;
 fseek(imagedelta, SEEK_SET, 0) ;

 fread(&bmfh1, sizeof(bmfh1), 1, image1) ;
 fread(&bmfh2, sizeof(bmfh2), 1, image2) ;
 fread(&bmfhDelta, sizeof(bmfhDelta), 1, imagedelta);

 unsigned char* pixel1;
 unsigned char* pixel2;
 unsigned char* pixelDelta;

 pixel1 = new unsigned char [bmfh1.bfSize];
 pixel2 = new unsigned char [bmfh2.bfSize];
 pixelDelta = new unsigned char [bmfhDelta.bfSize];

 //Lecture et stockage de l'image dans la variable pixel
 fread(pixel1,1,bmfh1.bfSize,image1);
 fread(pixel2,1,bmfh2.bfSize,image2);
 fread(pixelDelta,1,bmfhDelta.bfSize,imagedelta);


 //Parce que la définition des pixel commence a 40 (avant c'est l'entete)
 i=40;

 //Boucle pour faire tout les pixel
 while(i<=(bmfh1.bfSize))
 {
  //Si les pixel sont différent
  if((pixel1[i]!=pixel2[i])||(pixel1[i+1]!=pixel2[i+1])||(pixel1[i+2]!=pixel2[i+2]))
  {  
   pixelDelta[i]=0x5A;
   pixelDelta[i+1]=0xA5;
   pixelDelta[i+2]=0xA9;
  }
  i+=3;
 }

 fseek(imagedelta,14, 0) ;

 fwrite(pixelDelta,sizeof(pixelDelta),bmfh1.bfSize,imagedelta);

 //Ferme les trois fichiers
 fclose(image1);
 fclose(image2);
 fclose(imagedelta);

 //Delete
 delete pixel1;
 delete pixel2;
 delete pixelDelta;
}



Cette discussion est classée dans : pixeldelta, imagedelta, pixel1, pixel2, bfsize


Répondre à ce message

Sujets en rapport avec ce message

(Problème spécial) Compter le nombre de pixel différent entre deux images [ par chuckboy ] Bonjour a tous , J'ai un petit probleme. Cette fonction vérifie pixel par pixel deux images et compte le nombre de pixel différent entre les deux , ca


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales