Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Imagenes JPG con InterBase (https://www.clubdelphi.com/foros/showthread.php?t=49490)

Carmelo Cash 23-10-2007 13:17:00

Imagenes JPG con InterBase
 
Hola Foro:

Estoy seguro que este tema ya se había tratado, pero no encuentro nada utilizando el buscador.

Necesito guardar imagenes JPG en la base de datos, con las BMP no tengo problema, pero ocupan mucho espacio.

Estoy utilizando InterBase y Delphi 7. He visto que algunos proponen guardar las imagenes en una carpeta y en la base de datos solamente la ruta y nombre de archivo, pero no es lo que necesito.

Bueno, queda planteado (nuevamente) el tema. Desde ya muchas gracias.:rolleyes:

Gabo 23-10-2007 13:26:07

Échale un vistazo a los enlaces al pié de la página...

Una consulta a los que lo han hecho alguna vez, ¿incrementa mucho el tamaño de la base de datos el guardar las imágenes en ella? ¿Han tenido algún inconveniente derivado de hacerlo así?

fidel 26-10-2007 01:42:24

El incremento de tamaño de la base de datos al guardar imágenes dependerá del número de registros de la base de datos y del tamaño de las imágenes a guardar, no es lo mismo guardar una foto de carnet de 20 o 30 bites que una foto de un paisaje hecha con una cámara de 10 megapixels con su más alta resolución, ni es lo mismo guardar 200 fotos que 200000 por ejemplo.

Hay muchas consultas sobre este tema en el foro

http://www.clubdelphi.com/foros/showthread.php?t=41572

Gabo 26-10-2007 09:55:27

Bueno, creo que a mi pregunta le faltaban detalles. Es que tengo una aplicación donde guardo la ruta a las imágenes de los productos. Son de entre 1 y 2 MB cada una para un total de 1000 productos aproximadamente. Al ver la manera de guardarlas directamente en la base de datos, me entraron mis dudas sobre si tendría algún efecto negativo a medida que esta crecía, y de ahí mi pregunta.

Creo que la mejor manera de salir de dudas será probarlo... ;):D
Gracias por tu respuesta... :)

Carmelo Cash 27-10-2007 05:20:04

Gracias Gabo
 
Haciendo un Mix de los ejemplos que hay en el pié de página pude guardar las imagenes JPG en la Base de datos.
Muchas gracias por tu ayuda.

Chris 05-11-2007 16:07:55

Realmente es sencillo de realizar, el viernes pasado estove trabajando en algo parecido, porque las imágenes BMP me parecen un desperdicio de espacio, esto fue a lo que llegue.

para guardar las imágenes utiliza es código:
Código Delphi [-]
var
fs : TFileStream;
blob : TStream;
begin
  If OpenPictureDialog1.Execute Then
  Begin

  try
  If Not (TablaImages.State = dsEdit) or Not (TablaImages.State = dsInsert) Then
      TablaImages.Edit;
      
  blob := TablaImages.CreateBlobStream(TablaImages.FieldByName('CAMPO_IMAGEN'),
  bmWrite);
  
  blob.Seek(0, soFromBeginning);

  fs := TFileStream.Create(OpenPictureDialog1.FileName, fmOpenRead or
    fmShareDenyWrite);
    try
    blob.CopyFrom(fs, fs.Size)
    finally
    fs.Free
    end;
  finally
  blob.Free
  end;

Ahora, el componente TDBImage no puede visualsiliar imágenes que no sean BMP, así que como siempre, utilizaremos decendientes para la tarea. El componente que utilizo se llama TEDBImage, lo puedes encontrar en Torry.net.

Saludos.

P.D: Con este componente tambien visualizar varios tipos de imágen incluyendo PNG, WMF, ICO y muchos más.
Estoy casi seguro que con este ejemplo puedes almacenar imágenes en cualquier tipo de DB, siempre y cuando utilizes controles decendientes de TDataset.

Carmelo Cash 17-11-2007 13:38:47

Problema resuelto, jpeg guardada
 
Gracias D&W y a todos los que participaron. :cool:


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

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