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

Lazarus Pascal Discussion :

Récupérer une image contenue dans un fichier XML [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Récupérer une image contenue dans un fichier XML
    Bonjour,

    Je ne parviens pas à convertir le contenu d'un champ enregistré dans un fichier XML en image. Le document XML a été généré avec Delphi 6 et contenait les différentes données d'une table.
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <DATAPACKET Version="2.0">
    Le champ qui me pose problème
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <FIELD attrname="img" fieldtype="bin.hex" SUBTYPE="Graphics"/>
    Le début du contenu du champ dans le fichier XML :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    img="/9j/4AAQSkZJRg ...="

    Je parviens bien à ouvrir le fichier XML en utilisant dom et xmlRead comme units.
    Ensuite j'isole le contenu de ce champ dans un stream
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var
        DataImg : TMemoryStream;
        ContenuImg : string;     
     
    ContenuImg := NoeudRow.Attributes.Item[i].NodeValue; // la chaine est bien récupérée
    ContenuImg :=  Decode64(ContenuImg); // une fonction récupérée sur le net
    DataImg:= TMemoryStream.Create;
    DataImg.Write(ContenuImg, length(ContenuImg));
    DataImg.SaveToFile('monimage.jpg');
    A l'arrivée monimage.jpg ne correspond pas au fichier jpg d'origine.

    J'ai vu du côté de OmniXML pour les conversions mais le code ne semble pas compatible avec Lazarus.

    Une idée ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Résolu
    Finalement j'ai suivi ce post :
    http://stackoverflow.com/questions/6...ng-delphi-2007

    Les fonctions et procédures d'OmniXML ont fonctionné dans le code Lazarus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // récupération de la chaine du fichier XML  
    ContenuImg := NoeudRow.Attributes.Item[i].NodeValue;
    // utilisation de la fonction présente dans OmniXMLUtils.pas
    SaveBase64ToFile(ContenuImg_img,PathImgProv); // chaine Base64 en fichier binaire  
    // récupération de l'image sur le disque
    DBImage.Picture.LoadFromFile(PathImgProv);

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/04/2011, 20h28
  2. Réponses: 21
    Dernier message: 22/07/2009, 14h19
  3. Comment lire une image contenue dans un fichier PDF
    Par colorid dans le forum Langage
    Réponses: 1
    Dernier message: 15/05/2009, 19h59
  4. Réponses: 5
    Dernier message: 03/12/2008, 12h12
  5. [Zip] Afficher une image contenue dans un fichier zip
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 19/03/2007, 08h59

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