IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

fichier binaire jpeg


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Par défaut fichier binaire jpeg
    Bonjour,
    je suis débutant en C++ et je voudrais faire la chose suivante :

    dans netbeans j'ai un bout de code qui ouvre un flux , un fichier jpeg je le lis et j'affiche le résultat dans la console , voici le code (ce n'est pas moi qui l'ai ecrit ;-)) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
     
    #include <fstream>
    #include <vector>
    #include <iostream>
    #include <algorithm>
    using namespace std;
     
    int main()
    {
       ifstream in;
     
       in.open("/Users/sept_cinquante/Desktop/test.jpg", ios::in | ios::binary);
     
       if(in.is_open())
       {
          // get the starting position
          streampos start = in.tellg();
     
          // go to the end
          in.seekg(0, std::ios::end);
     
          // get the ending position
          streampos end = in.tellg();
     
          // go back to the start
          in.seekg(0, std::ios::beg);
     
          // create a vector to hold the data that
          // is resized to the total size of the file    
          std::vector<char> contents;
          contents.resize(static_cast<size_t>(end - start));
     
          // read it in
          in.read(&contents[0], contents.size());
     
          // print it out (for clarity)
          for(const char& c : contents)
          {
             cout << c;
          };
       }else{
           cout << "fichier non ouvert";
       }
     
       return 0;
    }
    dans la console je récupère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ������!���
    
    }!1AQa"q2��#B��R��$3br�
    %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������������������������������������������������������������������������w!1AQaq"2B����        #3R�br�
    $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������(��?���\�(�C7�V�����r��I&�Q{�Ceu�2�<��^�J�M�����c���FW<g�jb�uH��i�������{�m�X�\B��dq��ס+1ݲ�x�Q8L�s�H|U����aq��s��n㵐��گ��@�=)������\�1��Q+D6܀���\*�����Cu$�r���s�I��ꢐ&W�H��Sh�`}(��6̖�:=��j�2�`K.2x�ꣲ�l]��?
    �ɽȠeg2�s�G=zT�ۍ��FۏQ����_5q�l{I��j�#,�B0�3p:U���-u&��d!Dx�4B�j΢mYe�׮��g�� RO !FO�}�:�Q���y8싀�4�$=����3>H �U�*cx�6X�����sGU�g��������    �䴬<��FOaҰwJ|�ے��S�P�Z�8<Ăd<u�V���T�j�ֶ�\�=�9=��X�ȧ'�N��a9X�)-�H4����qQ�.�h�Di,�tPZŶޅh���;`��*�Y1]K��*�8�@GN��kc��*�!��q��v�O��r{�j$�>ĄaW�R�w��{�Sr�ɟ!��8�5�������a�NA�V���&�Vho<��t�I�R@�K��S������؞��I����56�Qߠd�-��!�T|�?�j����|����(b��ӟjnڴ      1�[�s��3��C��6  ��M4��8��u�3K���إ�С˼��>�ԁ[?1��փ�N�I=;��Rs��iXZ���w�c�J9m�^ὺs�1�ѓ��<u�Ҫ�BW�9<���M��q�ǭ-��ǂ�3{�)v�<{Ի�w�99��  9�z��w���>�T㱥]��$�Ь=@dc�8�qN�N(OQ[�����������ɧua\ifݒ͚76�7���I�b����@�3@r�#?�R`<H���k��rľi_w$`�T��b�m�l�����^Ȳj3�F�I��~��]�Ɲ���F~aOء8�'��(w���/�2Á�R�…�ҩ�!���A��*�Ѵ�RI�M���[z�ʚv�u�)Xm܊%��[,���X)Q��'�8ٳF��9���j��Y�����Ӑ���W7Vm����l�["$7�0{��.CQ��Gih�����2H~�,��.�'#�����?�w�%��HX�(�H>������7�{�r?*����G<�����h֑F�6S,��(p[���9����׵{+�d����q#f2�?l
    ����l҅�/���Ն��q��h�)AT��[3b"T�ߊl���i�A�
    �����ڔ ,=h����*����œ#�-���)&+ws�NRB�^�heʩ�n'�����$g۽0�I�ڱ���׎���F�h2y�OҦk�!���q�Mt�c�J��ih2A�6�@;�E8�*��DɃ��
     
    ........
    cela ne me semble pas être la représentation binaire d'un fichier , je devrais récupérer des bytes en 0 ou 1 voir de l' hexa.

    je voulais savoir comment récupérer le contenu binaire, peut être qu'il existe des softs pour cela, perso je suis sous OSX. le test que je voulais faire était de savoir, si en récupérant le contenu binaire d'un jpeg je pouvais faire une simple copie dans un fichier vierge jpeg a laide d'un éditeur et que je conservais bien mon image.

    dans un future proche je vais avoir besoin d'envoyer par radio le contenu d'une image , je pensais donc envoyer le binaire et le reconstituer pour afficher l'image sur une machine distante.

    bien entendu je ne peux pas envoyer ca par FTP ou autre, cela serait trop facile je vais envoyer ca a partir d'une arduino et de Xbee pour la transmition radio

    voila

    si qq1 a une piste, pour que je puisse comprendre.

    merci A+

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    N'importe quoi afficher du binaire dans une console.

    Si tu veux savoir si ce que tu reçois est correct ou pas, il faut l'enregistrer dans un fichier et l'ouvrir depuis l’explorer.

    Et si tu as un doute, code d'abord avec l'API en C: fopen, fclose, ...
    Cela évitera les mauvaises conversions implicites des flux ou bien utiliser un flag qui n'est pas le bon.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Par défaut
    Ok, pour le n'importe quoi ;-)

    J'ouvre mon fichier dans 0xED qui me permet de voir la représentation hexa de mon fichier, comment puis je ré-créer une image jpeg a partir de mon fichier binaire pour que je puisse l'ouvrir comme n'importe quel autre jpeg.

    Merci

    Je suis prêt a me faire encore engueuler, tant que je progresse ;-)

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Citation Envoyé par bruno.rotrou Voir le message
    J'ouvre mon fichier dans 0xED qui me permet de voir la représentation hexa de mon fichier
    Tu codes sous [Mac] OS X

    Citation Envoyé par bruno.rotrou Voir le message
    comment puis je ré-créer une image jpeg a partir de mon fichier binaire pour que je puisse l'ouvrir comme n'importe quel autre jpeg
    Un truc compliqué du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      FILE* dummy_file;
      dummy_file = fopen("Rita_Faltoyano.jpg","wb+");
     
      if (dummy_file != NULL) {
        fwrite(c, sizeof(char) /*1*/, contents.size(), dummy_file);
     
        fclose(dummy_file);
      }

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Par défaut
    ceux qui maitrise le C m'impressionnent , c'est pour çà que j'ai décidé de m'y mettre, je déconne c'est par obligation

    j’étudie avec attention ce bout de code.

    juste une petite question au passage, a priori une foi que je maitrise la manipulation du code binaire d'un fichier en C ou C++, rien ne m'interdit de l'envoyer en radio frequence sous forme de bytes puis de le reconstruire quand je l'ai récupéré.


    encore merci

    A+

Discussions similaires

  1. Afficher un fichier binaire sous Windows
    Par Atomikx dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 14/12/2004, 00h29
  2. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  3. [Debutant] Comment lire la taille d'un fichier binaire ?
    Par Invité dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 18/12/2003, 19h20
  4. communication fichier binaire fichier txt
    Par micdie dans le forum C
    Réponses: 3
    Dernier message: 05/12/2002, 00h19
  5. fichier binaire ou texte
    Par soussou dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/06/2002, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo