![]() |
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!!! |
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. |
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! |
Gracias
![]() Cita:
|
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! |
El componente normal TImage puede mostrar jpg también, haz una búsqueda por los foros, se ha tratado el tema en diversas ocasiones.
|
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! |
Ahora, yo probé poner este código que vi en alguna parte de este foro:
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! |
Venga, una buscadita y verás como lo encuentras en un momento ;)
|
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!! |
Algo así te sirve, con un simple timage
|
Poniendo
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!! |
Mira a ver si te sirve esto, a mí me va bien.
http://www.clubdelphi.com/foros/showthread.php?t=41572 |
Muchas gracias a todos por sus respuestas. Un amigo mio me dio la solución. Instalar las componentes Jedi.
Saludos!! |
Bueno, vale, perfecto :rolleyes::)
|
La franja horaria es GMT +2. Ahora son las 10:01:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi