![]() |
Porqur al asignar una imagen a un campo la pierdo ?
Hola foreros !!!
Tengo un campo BLOB en una tabla Cargo la imagen, que se encuentra en un fichero externo DBIc1.Picture.LoadFromFile(OpenDialog1.FileName); Hasta aqui todo ok, la imagen se visualiza en el TDBImage, pero cuando quiero cargar dicha imagen en el campo para poder grabarla, esta desaparece, al hacer: DBIc1.Field.Assign( DBIc1.Picture ) Se me queda el campo TDBImage en blanco y en el buffer no hay nada que grabar en la BD. Cualquier orientacion sera bien recibida !!! Gracias anticipadas a todos !!! |
hola, yo lo que hago es asignar a la imagen a un componente tImage con:
Código Delphi [-]Image.Picture.LoadFromFile( sNombreArchivo ); luego cuando lo quiero asignar a la tabla lo hago de la siguiente forma: Código Delphi [-]DBIc1.Picture.Graphic.Assign( Image.Picture.Graphic ); DBIc1.LoadPicture; el hacerlo mediante un tImage lo hago ya que en ocasiones al hacerlo con un tDBImage me ha dado problemas, y haciendo pruebas de esta forma me lo hizo bien. |
Igual te da ese problema si la imagen está en JPG, yo la convierto a BMP de 15bits al momento de guardarla y así no tengo ningún problema.
|
Si uso DBIc1.CopyFromClipboard funciona bien, aunque sea un JPG. El problema solo viene si hago la carga desde un fichero e intento asignarla al DBImage.
Saludos !!! |
para ese caso haces lo que dice JosepGA
|
Mejor utiliza el TBlobField
Prueba este código
en esencia ese es el código que creo yo te servirá |
Varias cuestiones:
La solución de D&W me parece muy buena, pero solo funciona si la imagen es BMP. Con JPG da error. La solucion de mightydragonlor, de pasar a BMP me parece interesante, y ya puestos me gustaria me orientaras como pasar a BMP un JPG. Pero en este caso no quiero cambiar la imagen. Y la solución de JosepGA, es la que me ha funcionado correctamente. Muchas gracias a todos por vtra colaboración. Saludos !!! |
De esta manera cambias el formato y la profundidad del la imagen a BMP, no altera el tamaño original.:)
|
Yo utilizo esto y me va bien. El código está asociado a un botón de cargar imagen.
Saludos |
Cierto, el código propuesto por fjcg02, funciona perfectamente. Muchas gracias.
Y gracias a mightydragonlor, por la function ToBmp. Por cierto solo me queda una duda, no es necesario liberar el puntero a TBitmap.Create ??? Saludos !!! |
No, por que si te fijas es el result y si lo liberas tendras un error por que no existiria el resultado de la función;
|
No, si eso lo entiendo, pero eso significa que ese puntero se libera automáticamente ???
Saludos !!! |
| La franja horaria es GMT +2. Ahora son las 19:14:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi