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:
<DATAPACKET Version="2.0">
Le champ qui me pose problème
Code:
<FIELD attrname="img" fieldtype="bin.hex" SUBTYPE="Graphics"/>
Le début du contenu du champ dans le fichier XML :
Code:
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:
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 ?