Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 11-07-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
hola

Por lo que comentas no dejas claro si lo que quieres es leer directamente la imagen conectándote directamente al servidor y procesar la imagen allí almacenada en el campo blob, que se plantearía con componentes de base de datos

Cita:
Empezado por jrojasmcfia Ver Mensaje
sin embargo necesito hacer lo mismo pero con imagenes almacenandas en la base de datos del servidor en este caso es una base de datos MySql y el campo es tipo blob.
O prentendes acceder a una URL de tu servidor que sera la encargada de servirte la imagen,
Cita:
Empezado por jrojasmcfia Ver Mensaje
Supongo que la url debe apuntar a un php que devuelva la imagen, en php ya puedo hacer la consulta de la imagen pero que tiene que devolver para que el componente indy lo entienda.
Si el caso es el de este segundo punto, leerlo desde una URL determinada, lo único que debes de hacer en tu servidor de PHP es mostrar la imagen como un JPG normal (que se pueda visualizar en un navegador).
Y aquí un enlace de como hacerlo:
mostrar-una-imagen-desde-blob-mysql-usando-php

Y en la parte de delphi, ya es totalmente independiente la forma en que esta almacenada en el servidor web, solamente se trata de leer una imagen almacenada en una URL.

Uno de los problemas que puedes tener es que la imagen, bien sea la recibida tanto desde el servidor como la almacenada en la BBDD, no sea un BMP que es lo que trabaja delphi de forma nativa, por lo que tienes que hacer procesos de conversión de formato

Aquí te dejo un código de ejemplo para cambiar de formato la imagen, y el ejemplo completo que lee una imagen desde una URL y determina el tipo de imagen por los caracteres de su cabecera

Código Delphi [-]
uses
  Jpeg, pngimage, GIFImg;

procedure DetectImage(FS: TStream; BM: TBitmap); overload;
/// Este procedimiento detecta el tipo de imagen (BMP, PNG, JPG, GIF) y la carga en formato BMP
var
  FirstBytes: AnsiString;
  Graphic: TGraphic;
begin
  try
    Graphic := nil;

    SetLength(FirstBytes, 8);
    FS.Position := 0;
    FS.Read(FirstBytes[1], 8);
    if Copy(FirstBytes, 1, 2) = 'BM' then
      Graphic := TBitmap.Create
    else if FirstBytes = #137'PNG'#13#10#26#10 then
      Graphic := TPngImage.Create
    else if Copy(FirstBytes, 1, 3) = 'GIF' then
      Graphic := TGIFImage.Create
    else if Copy(FirstBytes, 1, 2) = #$FF#$D8 then
      Graphic := TJPEGImage.Create;

    if Assigned(Graphic) then
    try
      FS.Seek(0, soFromBeginning);
      Graphic.LoadFromStream(FS);
      BM.Assign(Graphic);
    except
    end;
  finally
    FreeAndNil(Graphic);
  end;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  ImgStream: TMemoryStream;
  url: string;
begin
  // Una imagen de ejemplo cualquiera
  url := 'https://live.staticflickr.com/2724/4362845813_d550daa427_z.jpg';
  try
    ImgStream := nil;
    ImgStream := TMemoryStream.Create;
    idhttp1.get(url, ImgStream);
    DetectImage(ImgStream, image1.Picture.Bitmap);
  finally
    ImgStream.Free;
  end;
end;
Responder Con Cita
 



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
Problemas para leer un un campo desde una base de datos con java fainke JAVA 2 30-11-2014 16:15:59
password diferentes desde el mismo servidor de base de datos novato_erick Firebird e Interbase 18 13-07-2014 10:31:34
Leer XML desde Base de Datos brandolin Varios 2 22-05-2013 14:18:17
Actualizar una base de datos desde un servidor remoto zvf MySQL 1 22-06-2006 22:21:26
Leer Base de Datos desde un CD Gabriel2 Varios 3 29-09-2005 01:38:15


La franja horaria es GMT +2. Ahora son las 05:38:49.


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