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

Composants VCL Delphi Discussion :

Récupérer une image qui a été enregistrée dans un fichier XML


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Par défaut Récupérer une image qui a été enregistrée dans un fichier XML
    Bonjour à tous,

    je refais ici un fil pour cette histoire d'image XML...

    Dans le sens Image Vers XML c'est ici que cela comment

    https://www.developpez.net/forums/d1...e-fichier-xml/

    et se termine la :

    https://www.developpez.net/forums/d1...ize-in-encode/

    Pour moi tout semble bine fonctionner.
    Mais maintenant , j'aimerais récupérer cet image dans le fichier XML et l'afficher à nouveau dans sont TImage

    voici comment je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      var
     
        LStream: TMemoryStream;
        STRStream:TStringStream;
     
    ...  
    // Dossier.ChildValues[0] => mon image dans le fichier XML
     
      STRStream:=TStringStream.Create(Dossier.ChildValues[0]);
      LStream := TMemoryStream.Create;
     
     
      imgSignature.Bitmap.LoadFromStream(LStream);
    et bien sur j'obtiens une erreur : le chargement du bitmap à échouer

    Est ce quelqu'un peu me venir en aide ??

    merci beaucoup

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 933
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 933
    Par défaut
    Et où est le décodage ?

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    quelle version de delphi ?

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    en attendant la réponse, sous Berlin, écrit à la va-vite (mais testé quand même)

    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
    48
    49
    50
    51
    52
    53
     
    uses System.NetEncoding, xml.xmldoc, Xml.XMLIntf;
     
    function EncodedBMP(const NomFichier: string): string;
    var
      MemStreamIn: TMemoryStream;
      Bts: TBytes;
    begin
     
      MemStreamIn := TMemoryStream.Create;
      MemStreamIn.LoadFromFile(NomFichier);
      MemStreamIn.Seek(0, 0);
     
      SetLength(Bts, MemStreamIn.Size);
      MemStreamIn.ReadData(Bts, MemStreamIn.Size);
      MemStreamIn.Free;
     
      Result := TNetEncoding.Base64.EncodeBytesToString(Bts);
    end;
     
    procedure TForm21.Button1Click(Sender: TObject);
    var
      xlm: IXMLDocument;
      node: IXMLNode;
      Bts: TBytes;
      Bmp: TBitmap;
      MemStreamIn: TBytesStream;
    begin
     
      // Création du fichier XML
      xlm := NewXMLDocument();
      xlm.AddChild('Images');
      xlm.DocumentElement.AddChild('bmp')
         .NodeValue := EncodedBMP('D:\Divers\Images\Réception.bmp');
      xlm.SaveToFile('g:\Images.xml');
      xlm := nil;
     
      // Récupération du xml pour générer le bitmap
      xlm := LoadXMLDocument('g:\Images.xml');
      Bts := TNetEncoding.Base64.DecodeStringToBytes(xlm.DocumentElement.ChildValues['bmp']);
      MemStreamIn := TBytesStream.Create(Bts);
      MemStreamIn.Seek(0, 0);
     
      Bmp := TBitmap.Create;
      Bmp.LoadFromStream(MemStreamIn);
      image1.Picture.Bitmap.Assign(Bmp);
      Bmp.SaveToFile('D:\Divers\Images\Réception2.bmp');
     
      FreeAndNil(Bmp);
      FreeAndNil(MemStreamIn);
     
      xlm := nil;
    end;

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Par défaut
    Merci pour vos réponses...

    effectivement il faut décoder, mais même avec j'ai un soucis...

    ma version est XE8 et je suis en FMX (Pas le bon cote du forum, désolé), mais je me suis dit que cela doit fonctionner un peu pareil...

    je teste ta solution Papy214 et te dit quoi !!!

    Merci

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Par défaut
    je sais pas si je doit répondre je suis un vrai boulet, je vais aller me coucher, et je reviendrais demain....

    ton code fonctionne parfaitement bien papy214

    et le mien aussi (pas celui que j'ai posté (manque le décodage) un peu trop vite d'ailleurs...)

    mais voilà ce qui arrive quand on code dans l'urgence et a l'arrache

    en tout cas merci pour tout... est désole pour le dérangement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/12/2016, 08h42
  2. Réponses: 2
    Dernier message: 29/07/2010, 21h58
  3. [Débutant] Copier une image .png et la coller dans un fichier excel
    Par bambou015 dans le forum Images
    Réponses: 5
    Dernier message: 22/06/2010, 11h02
  4. [HTML] Utilisation d'une image stockée sur un serveur dans un fichier HTML
    Par Rosa2008 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/07/2008, 08h01
  5. Réponses: 10
    Dernier message: 17/03/2007, 14h05

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