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.
Le champ qui me pose problème
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part <DATAPACKET Version="2.0">
Le début du contenu du champ dans le fichier XML :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part <FIELD attrname="img" fieldtype="bin.hex" SUBTYPE="Graphics"/>
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
A l'arrivée monimage.jpg ne correspond pas au fichier jpg d'origine.
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');
J'ai vu du côté de OmniXML pour les conversions mais le code ne semble pas compatible avec Lazarus.
Une idée ?
Partager