Avatar
pedperpat
Participante
pedperpat

Buenos días,

 

He estado mirando y lo que he visto es que mediante variables de tipo automation se puede convertir el texto de la url a imagen de tipo blob, creo que lo que estás intentando lograr se puede con la siguiente función:

 

fnDownloadImage(‘http://static.adzerk.net/Advertisers/5fa811fa1a3e40f1a3435478bd1364a0.png’,’C:\Dummy\p.png’,1);

function name : fnDownloadImage
Var Name DataType Subtype Length
No ptxtUrl Text 1024
No ptxtSaveAsFileName Text 1024
No poptSaveAsOption Option

Name DataType Subtype Length
atXMLHTTP30 Automation ‘Microsoft XML, v3.0’.XMLHTTP30
atAdodbStream Automation ‘Microsoft ActiveX Data Objects 6.1 Library’.Stream
IF STRLEN(ptxtUrl) = 0 THEN
EXIT(FALSE);

CREATE(atXMLHTTP30,FALSE,TRUE);
atXMLHTTP30.open(‘GET’, ptxtUrl,FALSE);
atXMLHTTP30.setRequestHeader(‘Content-type’,’image/png’);
atXMLHTTP30.send;

CASE atXMLHTTP30.status OF
200: BEGIN
CREATE(atAdodbStream,FALSE,TRUE);
atAdodbStream.Type := 1; // adTypeBinary
atAdodbStream.Open;
atAdodbStream.Write(atXMLHTTP30.responseBody);
atAdodbStream.SaveToFile(ptxtSaveAsFileName,poptSaveAsOption + 1); // adSaveCreateNotExist = 1,           adSaveCreateOverWrite = 2
atAdodbStream.Close;
END;
ELSE
MESSAGE(‘%1’,atXMLHTTP30.statusText);
END;

IF NOT ISCLEAR(atAdodbStream) THEN
CLEAR(atAdodbStream);

IF NOT ISCLEAR(atXMLHTTP30) THEN
CLEAR(atXMLHTTP30);

EXIT(TRUE);

Espero que sea útil y puedas guardar correctamente la imagen, disculpa por la identación que tiene el código.

Un saludo.

#13399