Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2014
vicens22 vicens22 is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 61
Poder: 14
vicens22 Va por buen camino
Visualizar imagenes en servidor web - webbrowser o componente image

Buenas tardes,

Experimentando con Delphi XE5, me encuentro con la necesidad de visualizar fotografías que se encuentran en un servidor web.
He hecho algunas pruebas y entre ellas he intentado cargas las imagenes en un objeto tImage, utilizando un stream, de la siguiente forma :

Código Delphi [-]
 Stream := TMemoryStream.Create;
IdHTTP1.Get('http://fotos.agencia.es/fotos/Imagen1.jpg', Stream);
Stream.Seek(0, soFromBeginning);
ttImage1.Bitmap.LoadFromStream(Stream);

Curiosamente, esto funciona al ejecutar para windows, pero en el dispositivo android, aunque no da error el componente tImage muestra tan solo unos puntos sin cargar la imagen.

La otra opción q me planteaba es utilizar un webbrowser en lugar del componente tImage o similar.

Alguien ha experimentado algo más y me puede aconsejar, alguna otra opción o dar su opinión

Muchas gracias.
Saludos,

Vicente
Responder Con Cita
  #2  
Antiguo 22-03-2014
vicens22 vicens22 is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 61
Poder: 14
vicens22 Va por buen camino
Buenos días,

He seguido haciendo pruebas y en principio ya me funciona correctamente la carga y visualización de imágenes que se encuentran en la web, utilizando el componente tImage.
Aquí adjunto el código por si a alguien le resulta útil.
Agradezco cualquier comentario de mejora u otras opciones.

Saludos

Vicente


Código Delphi [-]

var Stream: TMemoryStream;

begin

nNum:=10;
   try

         Stream := TMemoryStream.Create;


         idHTTP1.Get('http://fotos.agencia.es/fotos/Imagen1.jpg', Stream);
      
         Stream.Seek(0, soFromBeginning);
         tiFoto.bitmap.LoadFromStream(Stream);
    finally
         Stream.Free;
   end;
Responder Con Cita
  #3  
Antiguo 22-03-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gracias
Responder Con Cita
  #4  
Antiguo 28-10-2015
gustavosv gustavosv is offline
Miembro
 
Registrado: mar 2008
Posts: 51
Poder: 17
gustavosv Va por buen camino
Hola, tengo un problema muy parecido, simplemente que mis imágenes están en un servidor interno no en un servidor web. Uso XE7.

Tengo un servidor Datasnap que accesa a la base de datos y a los archivos JPG, y unos clientes Windows y Android, el asunto funciona en Windows pero no en Android, estoy usando un TJSONArray para traer la imagen pero en el dispositivo Android el Stream llega = nil.

Aquí el código del servidor Datasnap
Código Delphi [-]
function TServerMethGeneral.GetImagen(ArchivoImagen: string): TJSONArray;
var
  AArchStream: TMemoryStream;
begin
  Result := nil;
  AArchStream := TMemoryStream.Create;

    if FileExists(ArchivoImagen) then
    begin
      AArchStream.LoadFromFile(ArchivoImagen);
      AArchStream.Seek(0, 0);
      Result := TDBXJSONTools.StreamToJSON(AArchStream, 0, AArchStream.Size);
    end
    else
      showmessage('NO se encontró el archivo de imagen: '+ArchivoImagen);
end;

y éste el método de la aplicación cliente, que utiliza un componente TSqlServerMethod (SqlSrvMethGetImagen) para enlazarse
Código Delphi [-]
var
  RutaImg: string;
  AArchJSON: TJSONArray;
  AArchStrem: TStream;
begin
  AArchStrem := TStream.Create;
  RutaImg := 'C:\Imagenes\IMG_5671.jpg';

    SqlSrvMethGetImagen.ParamByName('ArchivoImagen').AsWideString := RutaImg;
    SqlSrvMethGetImagen.ExecuteMethod;

    AArchJSON := (SqlSrvMethGetImagen.ParamByName('ReturnParameter').AsObject) as TJSONArray;
    if AArchJSON = nil then
      ShowMessage('NO encontró la imagen: ' + RutaImg)
    else
    begin
      AArchStrem := TDBXJSONTools.JSONToStream(AArchJSON);
      AArchStrem.Seek(0, 0);
      Image1.Bitmap.LoadFromStream(AArchStrem);
    end;

O me estoy complicando y la solución es por otro lado ...?

Gracias,

GustavoSV
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
WebBrowser bloqueo de carga de imagenes titomigue Internet 1 17-08-2010 10:53:34
Visualizar Imagenes reinier Gráficos 3 12-04-2008 12:40:15
Escribir en un componente Image Caral Gráficos 5 17-12-2007 18:10:08
Visualizar imagenes grandes fjcg02 Gráficos 2 20-11-2006 17:33:36
Visualizar imagenes aig Servers 0 03-06-2003 11:51:39


La franja horaria es GMT +2. Ahora son las 10:07:55.


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
Copyright 1996-2007 Club Delphi