Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-12-2004
Tomás Tomás is offline
Miembro
 
Registrado: may 2003
Ubicación: Elche
Posts: 140
Poder: 22
Tomás Va por buen camino
Hola:

Yo utilizo esto, pero es para cargar de una en una (puedes adaptarlo a tu caso), y guardo el formato en otro campo porque a veces son .jpg y otras .bmp, si las tuyas son siempre .jpg no necesitarás este dato.

Te pongo el código por si es esto lo que quieres y te sirve de algo adaptándolo a tus necesidades.

Código Delphi [-]
procedure TFPalabras.TBCargaFotoClick(Sender: TObject);
var
  m, f: TStream;
  s: string;
begin
  //se abre picturedialog para cargar fichero foto que se coja
  if dlgOpenPicture.Execute then
    begin
      //modo edición
      DM.IBDSPalNue.Edit;
      //stream a partir campo Blob que contendrá la imagen
      m:= DM.IBDSPalNue.CreateBlobStream(DM.IBDSPalNueFOTO, bmWrite);
      //stream para acceder al archivo gráfico
      f:= TFileStream.Create(dlgOpenPicture.filename, fmOpenRead);
      //copiar de un stream a otro
      m.CopyFrom(f, f.Size);
      //coger formato foto y ponerlo en campo correspondiente
      s:= AnsiUpperCase(ExtractFileExt(dlgOpenPicture.FileName));
      if s='.JPEG' then
        s:= '.JPG';
      DM.IBDSPalNueFORMATOFOTO.AsString:= Copy(s,2,3);
      DM.IBDSPalNue.Post;
      //destruir streams
      f.Free;
      m.Free;
    end
end;

Para mostrar la imagen lo hago con un TImage. Si te interesa saber como me lo dices.

Un saludo.
Responder Con Cita
  #2  
Antiguo 13-12-2004
Avatar de sercornejov
sercornejov sercornejov is offline
Miembro
 
Registrado: may 2003
Ubicación: Neiva - Colombia
Posts: 88
Poder: 22
sercornejov Va por buen camino
Gracias.

VOY A ENSAYARLO (LA DEMORA HA SIDO POR VIAJE...) LO DE MOSTRARLO, ES DECIR SACANDOLO DE LA db LO HACES COMÓ?

Gracias.
__________________
En Colombia hay muchos, pero muchos colombianos muy buenos. Los violentos son pocos y los vamos a controlar...
Responder Con Cita
  #3  
Antiguo 13-12-2004
Tomás Tomás is offline
Miembro
 
Registrado: may 2003
Ubicación: Elche
Posts: 140
Poder: 22
Tomás Va por buen camino
Hola:

Para mostrar la foto hago esto:

Pongo un TDataSource enlazado al DataSet correspondiente y un TImage.

En el evento OnDateChange del DataSource pongo esto:
Código Delphi [-]
procedure TFPalabras.DSFotoPalNueDataChange(Sender: TObject; Field: TField);
var
  m: TStream;
begin
  if DM.IBDSPalNueFOTO.IsNull then
    //para registros sin foto poner imagen vacia
    ImgFotoPalNue.Picture := nil
  else
    begin
      if DM.IBDSPalNueFORMATOFOTO.AsString = 'BMP' then
          //si es formato BMP
          ImgFotoPalNue.Picture.Graphic:= TBitmap.Create
      else if DM.IBDSPalNueFORMATOFOTO.AsString = 'JPG' then
          //si es formato JPG
          ImgFotoPalNue.Picture.Graphic:= TJpegImage.Create
      else
        Exit;
      //copiar los datos desde la tabla con un stream
      m:= DM.IBDSPalNue.CreateBlobStream(DM.IBDSPalNueFOTO, bmRead);
      ImgFotoPalNue.Picture.Graphic.LoadFromStream(m);
      m.Free;
    end;
end;

Para borrar la foto (del TImage y del campo Blob) pongo esto:
Código Delphi [-]
procedure TFPalabras.TBBorraFotoClick(Sender: TObject);
begin
  if Application.MessageBox('¿Seguro que desea borrar esta foto?','Borrar',mb_OkCancel+mb_IconQuestion)= IdOk then
    begin
      //borrar imangen
      ImgFotoPalNue.Picture.Assign(nil);
      //borrar foto del campo blob
      if (DM.IBDSPalNue.State <> dsEdit) and (DM.IBDSPalNue.State <> dsInsert) then
        DM.IBDSPalNue.Edit;
      DM.IBDSPalNueFOTO.Assign(nil);
      DM.IBDSPalNue.Post;
    end;
end;
Como te dije tengo fotos .bmp y .jpg y por eso tengo un campo donde guardo el formato.

Para .jpg hay que añadir en el uses la unit JPeg

Puedes mirar aquí:
http://www.rinconcitodelphi.com/comp...omponentes.htm
De título: Imágenes en campos Blob de Interbase y componentes IBX

Suerte. Tomás.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 19:52:33.


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