begin process at 2012 05 29 10:35:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Multimédia

 > 

écriture fichier


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

écriture fichier

vendredi 18 août 2006 à 11:47:11 | écriture fichier

thorodin

Salut,


Quand j'enregiste une jpeg sur la caméra et que je la transfère par filezilla  le fichier  édité  avec  hexedit  donne (pour la première ligne) :

ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00  01

(dans ce cas l'image est bonne)
 
Quand j'ouvre le fichier sur la caméra et que je le transfère par socket au PC , j'ai pour la première ligne :

ff d8 ff e0 10 4a 46 49 46 01 01 01 01 ff db 43

=> il n'écrit pas les octets à 00!!!

voila grosso modo mon code

char*image = (char*)malloc(sizeof(unsigned char)*22133) ;
memset(image,0,22133) ;

    count=recv(csock,(char *)image,22133,0);
    printf("Count=%d",count);
    for (y = 0; y <22133; y++)
      { 
                    sprintf(buf,"%c",(unsigned char)image[y]);
                    put_header_line(file,buf); 
      }

En plus, quand j'utilise ce code à chaque fois qu'il y a 0a il ajoute un 0d devant par rapport au fichier original.

A+.
vendredi 18 août 2006 à 11:56:03 | Re : écriture fichier

yoyo269

Membre Club
Salut,

Tu as ouvert ton fichier en mode binaire ?

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

vendredi 18 août 2006 à 11:57:10 | Re : écriture fichier

thorodin

Ma question est donc:

comment ajouter les octets à 00?

Comment supprimer ceux qui se rajoute avant 0a?

Merci.
vendredi 18 août 2006 à 11:58:08 | Re : écriture fichier

thorodin

j'ai ouvert le fichier avec cette méthode :

int file = open(tim,
        _O_WRONLY|_O_TEXT | _O_CREAT) ;
vendredi 18 août 2006 à 12:02:59 | Re : écriture fichier

yoyo269

Membre Club
Au lieu de _O_TEXT, essaye avec _O_BINARY à la place.
Tiens-moi au courant.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

vendredi 18 août 2006 à 12:13:49 | Re : écriture fichier

vecchio56

Administrateur CodeS-SourceS
Pourquoi ne pas utiliser fwrite pour écrire les données directement, plutot que d'utiliser sprintf?

_____________________________________
Un éditeur de ressources gratuit pour Windows

vendredi 18 août 2006 à 12:46:57 | Re : écriture fichier

turnerom

Salut,
essay avec p dans le sprintf, plus quelques modifs que voici :


unsigned char*image = (unsigned char*)malloc(sizeof(unsigned char)*22133) ;
memset(image,0,22133) ;

    count=recv(csock,(char *)image,22133,0);
    printf("Count=%d",count);
    for (size_t y = 0; y <22133; y++)
      { 
                    sprintf(buf, "%p", (char*)image[y]);
                    put_header_line(file,buf); 
      }



Ps : y'a que moi que ca choquait (meme si ca change pas grand chose):
char
* image = (char*)malloc(sizeof(unsigned char)*22133) ; ?

TuRn3r
vendredi 18 août 2006 à 12:47:52 | Re : écriture fichier

turnerom

désola, j'avais pas vu :

+++++1 pour vecchio56


TuRn3r
vendredi 18 août 2006 à 14:48:13 | Re : écriture fichier

thorodin

Merci vecchio 56 .

Dans le fichier en hexa, il rajoute les 00 mais il reste le problème des 0d qui se rajoutent avant les 0a. Maintenant, il reconnait une image jpeg mais avec l'aperçu, l'image est brouillée.

J'ai modifié le code de la façon suivante:

fichier = fopen(tim,"w") ;
    
    count=recv(csock,(char *)image,22133,0);
    printf("Count=%d",count);
    
    for (y = 0; y <22133; y++)
      {                  
           fwrite(&image[y],sizeof(char),1,fichier);              
      }
 
    fclose(fichier);


       
vendredi 18 août 2006 à 15:26:16 | Re : écriture fichier

yoyo269

Membre Club
Réponse acceptée !
Essaie avec ça au début à la place de la première ligne :

fichier = fopen(tim, "wb");

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"


1 2

Cette discussion est classée dans : fichier, count, image, char, ff


Répondre à ce message

Sujets en rapport avec ce message

Copier des images sélectionnés par une liste [ par kididouille ] Bonjour, j'ai un pb, je dois réaliser un programme qui copie des images d'un dossier vers un autre. Les images choisies sont issues d'une liste en txt crypter/decrypter simplement une image [ par cool2source ] Bonjour, Je veux faire un programme qui "crypte" un fichier ( texte, image... ). Dans mon programme, je fais un fread du fichier à copier et ensuite Conversion d'un char[] en char*puis stocké en char*[] [ par Saigonoseme ] Bonjour à tous, J'ai un petit souci de conversion d'une chaîne de caractère dans un tableau de chaînes de caractère !!!(tAgTabTrame). (C'est pas agré demande d'aide (Gestion des fichiers et structures en C) [ par medsky ] Bonjour, Afin de manipuler les fichiers et les structures en C, On m'a demandé de réalisé une application qui cree un fichier pour saisir les inform Extraire une image d'un fichier MP3 [ par patevrard ] Bonjour Je souhaite savoir comment atteindre et extraire une image dans un fichier MP3 en C++ ? Quel tag ? Merci beaucoup Ouvrir un fichier JPEG [ par gamers84 ] Salut a tous Je voudrais creer un programme en C permetant au utilisteur d'ouvrir un image jpeg mais je ne sait pas comment ouvir l'image a aprtir du lecture fichier C [ par ayarikhaoula ] salut tout le monde je souhaite développez une fonction en c : qui lit un fichier ligne par ligne et stoque son contenu dans une chaine de carractère. les fichier en C [ par abdobergach ] bonjour j'ai un erreur qui je connais pas pouquoi qlq'un m'aider svp,voila l'eerreur: error C2664: 'CreateFileW'*: impossible de convertir le paramètr Programme Moyenne [ par kable78 ] Bonjour, Je cherche à faire un programme qui permet le calcul d'une moyenne à partir d'un fichier. Dans ce fichier doit figurer le nom de l'élève sui


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 : 1,108 sec (3)

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