PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Sauvegarder une image encodée en base 64
Sauvegarder une image encodée en base 64
Débuté par Roumegou Eric, 28 juin 2017 09:14 - 1 réponse
Posté le 28 juin 2017 - 09:14
Bonjour,


Je récupère un encodage d'une image en base64.
C'est à la base du svg que je retranscris en encodage base 64 avec la
fonction windows.btoa. J'ai besoin de sauvegarder cela sous forme d'une
image. Je fais donc cela, et j'ai un Res à faux et pas d'image bien
sûr.


Res est un booléen
monImage est une Image
MonFichier est une chaîne
MonFichier=fRepWeb()+"\Files\Img\svg4_"+gIDSession+".jpg"
monImage=Décode(SVG4_BASE64, encodeBASE64)
Res=dSauveImageJPEG(monImage,MonFichier)
SI PAS Res ALORS
Erreur("Impossible de sauvegarder le fichier : " + MonFichier,
ErreurInfo())
FIN


Ah ! si ce qui était annoncé par PCSOFT fonctionnait vraiment... On
pourrait travailler directement avec le svg.

Merci de votre aide.
J'ai fait des recherches et il semble qu' un "Gilles" avait résolu ce
type de pb, mais sans en donner la solution.

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com
Posté le 28 juin 2017 - 19:10
bon j'ai comme l'impression de faire les questions et les réponses ...
tout le monde est en vacances ? plus personne ne travaille avec WebDev
?

parmi toutes les galères et différentes pistes explorées, on arrive
enfin à récupérer du svg, que l'on convertit en base64 pour avoir un
image
en js on se sert de ça.
var svg4 = chart4.getSVG()
drawInlineSVG_4(svg4);

et en code webdev, voici le code (inspiré de WW_SIGNATURE)

MonBuffer est un Buffer
NomFichier est une chaîne
Fichier est une chaîne
nPosition est un entier
// GRAPH4 DOMAINE
MonBuffer=SVG4
Info(MonBuffer)
NomFichier ="Files\Img\svg4_"+gCurPPLID+".png"
Fichier = ComplèteRep(fRepWeb()) + NomFichier
nPosition = 0

// Il faut extraire l'entête de l'URL qui indique le type d'image
nPosition = Position(MonBuffer,",")
MonBuffer = MonBuffer[[nPosition+1 A]]

// Le buffer est encodé en base64, il suffit de le décoder avec la
fonction Decrypte
MonBuffer= Décrypte(MonBuffer,"",compresseAucun,encodeBASE64)

// Il ne reste plus qu'à enregistrer le buffer dans un fichier
fSauveBuffer(Fichier,MonBuffer)



Roumegou Eric avait écrit le 28/06/2017 :
Bonjour,


Je récupère un encodage d'une image en base64.
C'est à la base du svg que je retranscris en encodage base 64 avec la
fonction windows.btoa. J'ai besoin de sauvegarder cela sous forme d'une
image. Je fais donc cela, et j'ai un Res à faux et pas d'image bien sûr.


Res est un booléen
monImage est une Image
MonFichier est une chaîne
MonFichier=fRepWeb()+"\Files\Img\svg4_"+gIDSession+".jpg"
monImage=Décode(SVG4_BASE64, encodeBASE64)
Res=dSauveImageJPEG(monImage,MonFichier)
SI PAS Res ALORS
Erreur("Impossible de sauvegarder le fichier : " + MonFichier, ErreurInfo())
FIN


Ah ! si ce qui était annoncé par PCSOFT fonctionnait vraiment... On pourrait
travailler directement avec le svg.

Merci de votre aide.
J'ai fait des recherches et il semble qu' un "Gilles" avait résolu ce type de
pb, mais sans en donner la solution.

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com