Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-07-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 12
ElMug Va por buen camino
Leer JPEG o BitMap de campo blob

Aqui les dejo este desarrollo original de hace un par de dias, con el que se evita el tener una segunda columna para indicar el tipo de imagen guardada en una columna tipo Blob, y sin tener que descifrar el dato Blob escudriñandolo, para ver si es JPEG o Bitmap, y mostrar la imagen en un componente TImage.

Esto solo es para mostrar la imagen en dicho componente, pues de sobra se sabe que el guardado de la imagen en columna tipo Blob, es asunto trillado, y se hace usualmente mediante Image1.Picture.LoadFromFile(dlgOpenPicture.FileName). Pero realmente es irrelevante de como se archivo el dato Blob, siempre que no este fuera de lo convencional.

El asunto de este nuevo procedimiento es, pues, MOSTRAR la imagen en un componente TImage, irrespectivamente de si sea tipo .bmp o tipo JPEG.

Obvio les sera, que este procedimiento se puede facilmente ampliar si en la aplicacion se desea archivar otro tipo mas de imagen.

Sin embargo, el tipo JPEG y el Bitmap son los mas comunes. Si se desea archivar otro tipo de imagen, ya se sabe que hay varias utilerias para convertir imagenes a JPEG o a Bitmap, cuando aun son archivos. Hay utilerias que hacen la conversion al nivel Folder, inclusive.

Este es el codigo:

Código:
// var
//  BlobField: TField;
//  BS: TStream;

  with SQLQuery1 do
    begin
       BlobField := FieldByName('Pic'); {'Pic'  es el nombre de la column Blob con las fotos}
       BS := CreateBlobStream(BlobField,bmRead);
       Image1.Picture.Graphic:= TJpegImage.Create; {se asume sea JPEG}
    Try
       Image1.Picture.Graphic.LoadFromStream(BS); {error si no es JPEG}
      Except {repetir pasos para BitMap}
         BS.Free;
         Image1.Picture.Graphic:= nil; {vaciarla}
         BlobField := FieldByName('Pic'); {'Pic' es el nombre de la column Blob con las fotos}
         BS := CreateBlobStream(BlobField,bmRead);
         Image1.Picture.Graphic:= TBitMap.Create; {bitmap}
         Image1.Picture.Graphic.LoadFromStream(BS);
      end; {Try}
      BS.Free;
    end; {with SQLQuery}
Espero lo encuentren util y facil de entender.

Última edición por ElMug fecha: 23-07-2012 a las 12:55:07.
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
Leer datos de campo tipo blob Dens SQL 17 15-06-2017 20:15:30
FireBird, ZeosLib y JPEG en BLob JCarlosas Firebird e Interbase 3 08-04-2014 17:18:39
Error al guardar Jpeg en Campo Blob El_Perrito Gráficos 6 28-04-2012 20:06:38
Leer un campo BLOB con PHP mcaar Oracle 0 18-11-2004 14:15:56
Problemas alguardar imagenes jpeg y gif en un campo blob Flycket Firebird e Interbase 3 20-02-2004 09:29:02


La franja horaria es GMT +2. Ahora son las 11:38:34.


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