Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cargar imagenes desde una url (https://www.clubdelphi.com/foros/showthread.php?t=87787)

ZayDun 25-02-2015 20:13:21

Cargar imagenes desde una url
 
Hola compañeros,

Tengo un Form donde debo de cargar un total de 40 imágenes ".png" de un tamaño de 128x128 desde una lista de enlaces que va cambiando, estoy utilizando este código...

Código Delphi [-]
procedure VerImg(Image: TImage; URL: String);
var
  TempName: String;
begin
   TempName:= ExtractFileExt(URL);
   URLDownloadToFile(nil, PCHAR(URL), PCHAR(TempName), 0, nil);
   Image.Picture.LoadFromFile(TempName);
   DeleteFile(TempName);
end;

El código funciona perfectamente cuando se trata de cargar pocas imágenes, al realizar un for y cargar todas las imágenes el proceso se demora demasiado a pesar de su poco tamaño "8 KB", no se si hay algún componente o método para mostrar las imágenes desde una url mas rápidamente como en el caso de los navegadores web.

dec 25-02-2015 21:39:18

Hola,

Creo que te ayudaría llevar a cabo el proceso de descarga desde hilos separados.

escafandra 25-02-2015 22:06:04

Recuerdo bien ese código, lo diseñé para descargar y visualizar una imagen. Para descargar 40, no deberías usar un TImage, quiaás mejor guardarlas en un array o en archivos.

Como apunta dec, lo mejor es usal hilos.


Saludos.

Neftali [Germán.Estévez] 26-02-2015 10:52:29

Revisa esta entrada en mi blog. Me parece que es exactamente lo que estás haciendo tú (en el ejemplo con imágenes más pequeñas).

Al final se resuelve con una clase derivada de TThread (como comenta dec) que usa las Indy.

Está el código, así que puedes probarlo o modificarlo según te convenga.

Neftali [Germán.Estévez] 26-02-2015 11:23:43

Corrijo el ejemplo y lo subo en breve.
Ahora las imágenes se descargan utilizando HTTPS. Por lo tanto hay que añadir las librerías para SSL y utilizar un componente más para las Indy.
Ya están actualizados los ejemplos (al final de la página).


La franja horaria es GMT +2. Ahora son las 01:58:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi