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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Problemas con imágenes en BD

Gente, tengo un gran problema. Resulta que en mi base de datos (firebird) tengo registros con fotos, y al ingresar supongamos diez fotos de no más de 1 MB, la base crece muchísimo más que 10 MB. Las fotos que levanto son jpg, e internamente las convierto a BitMap. Acá va un código que uso:

------------------------------------------------------------
function
ConvertirFoto(Nombre:String):TBitmap;
var p : TPicture;
begin
p := TPicture.Create;
p.LoadFromFile(Nombre);
result := TBitmap.Create;
result.Assign(p.Graphic);
p.Free;
end;

procedure TFormFotos.Button2Click(Sender: TObject);
begin
DM.Fotitos.Edit;
DBimage1.Picture.Bitmap := ConvertirFoto(FileListBox1.FileName);
DM.FotitosID_DATOSFIL.Value := DM.DatosfilialesID_DATOSFIL.Value;
DM.Fotitos.Post;
DM.IBTransaction1.CommitRetaining;
showmessage('Foto agregada exitosamente');
end;
---------------------------------------------------------


Al hacer un backaup de la base, y restaurarla, el tamaño disminuye. No una barbaridad, pero disminuye. Qué estaré haciendo mal? Será que al convertir a BMP, los datos de la imagen crecen? Hay forma de guardar como jpg?

Saludos y gracias!!!
__________________
Programo por comida!
Responder Con Cita
  #2  
Antiguo 19-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El bmp ocupa muchisimo más que el jpg. De todas formas no te preocupes porque la BD sea grande, no hay ningún problema.

Por cierto, recuerda poner etiquetas a tu código fuente en los mensajes.
Ejemplo:



.

Y recuerda también poner las preguntas en el foro adecuado, en este caso seguramente estaría mejor en "Firebird".
¿Leíste nuestra guía de estilo?, gracias.
Responder Con Cita
  #3  
Antiguo 19-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Gracias! De ahora en más usaré ese método para poner código. En cuanto a la guía de estilos, la leí y estoy muy de acuerdo.

Saludos!
__________________
Programo por comida!
Responder Con Cita
  #4  
Antiguo 19-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gracias

Cita:
Empezado por martinlillo Ver Mensaje
Gracias! De ahora en más usaré ese método para poner código. En cuanto a la guía de estilos, la leí y estoy muy de acuerdo.

Saludos!
Responder Con Cita
  #5  
Antiguo 19-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
He estado leyendo, y encontré que hay un componente llamado EDBImage, que permite manejar jpg. Según lo que sospecho, puedo cambiar este componente sin tocar la estructura de la base de datos, en donde la imagen seguirá siendo blob tipo 0. Lo único que cambia es la interfaz.

Estoy en lo correcto?

Saludos!
__________________
Programo por comida!
Responder Con Cita
  #6  
Antiguo 19-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El componente normal TImage puede mostrar jpg también, haz una búsqueda por los foros, se ha tratado el tema en diversas ocasiones.
Responder Con Cita
  #7  
Antiguo 19-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Y el TDBImage? Puede mostrar jpg?

Si no entiendo mal, el problema es únicamente en la interfaz, ya que en la base de datos, no habría problema en guardar cualquier archivo, ya que es un blob. El problema aquí radica en poder mostrarlo al usuario. Es decir, el dato está, aunque no lo veamos...

Saludos!
__________________
Programo por comida!
Responder Con Cita
  #8  
Antiguo 19-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Ahora, yo probé poner este código que vi en alguna parte de este foro:

Código Delphi [-]
 TDBimage.LoadFromFile('ejemplo.jpg');

y me tira error porque no es un BMP válido. Eso me cambió los esquemas... se ve que hay que hacerle algo más al asunto...

Saludos!
__________________
Programo por comida!
Responder Con Cita
  #9  
Antiguo 19-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Venga, una buscadita y verás como lo encuentras en un momento
Responder Con Cita
  #10  
Antiguo 19-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Te juro que me estoy mareando en la navegación de links del foro!! He encontrado un montón de "medias soluciones", juaaa! Pero bueno, sigo leyendo... con paciencia...

Saludos y gracias!!
__________________
Programo por comida!
Responder Con Cita
  #11  
Antiguo 19-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Algo así te sirve, con un simple timage

Código Delphi [-]
uses jpeg
...
...
...

procedure TFmain.FormShow(Sender: TObject);
var
  cImg, cExt : string;
begin 
  cImg := LeerINI(cContaIni,_seccion_personal_,_propiedad_imagenfondoalternativa_);
  cExt := AnsiUpperCase(ExtractFileExt(cImg));
  if ( (_JPG_=cExt) or (_JPEG_=cExt) or (_PNG_=cExt) ) then
    imgFondo.Picture.LoadFromFile(cImg)
  else
  if (_BMP_=cExt) then
    imgFondo.Picture.Bitmap.LoadFromFile(cImg);

...
...
...

end;
Responder Con Cita
  #12  
Antiguo 19-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Poniendo
Código Delphi [-]
 DBImage.picture.LoadFromFile('ej.jpg');

no me tira ningún error, pero me deja el campo blob en NIL. No me levanta la imagen...
Pero creo que vamos por buen camino.

Gracias!!
__________________
Programo por comida!
Responder Con Cita
  #13  
Antiguo 19-09-2011
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Mira a ver si te sirve esto, a mí me va bien.

http://www.clubdelphi.com/foros/showthread.php?t=41572
Responder Con Cita
  #14  
Antiguo 20-09-2011
martinlillo martinlillo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 32
Poder: 0
martinlillo Va por buen camino
Muchas gracias a todos por sus respuestas. Un amigo mio me dio la solución. Instalar las componentes Jedi.

Saludos!!
__________________
Programo por comida!
Responder Con Cita
  #15  
Antiguo 20-09-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, vale, perfecto
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
!! Problemas con movimiento de imágenes !! Darkseratul Varios 3 11-07-2011 23:04:23
Problemas con imagenes jpg Besto Gráficos 4 11-10-2006 10:11:52
Problemas utilizando STI para adquisición de imágenes harpo API de Windows 2 24-08-2006 18:09:20
Problemas con Streams e Imágenes Elfoscuro Gráficos 2 09-05-2005 20:42:26
problemas con mail e imagenes hugokizo PHP 2 11-10-2004 11:02:14


La franja horaria es GMT +2. Ahora son las 01:12:59.


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