Cita:
Empezado por David
Me gustaria saber la razón y también la solución.
|
La razón es que el tipo Graphic de Paradox no acepta este formato de imágenes. Eso no significa que no puedas guardar imágenes jpg en una tabla Paradox, sólo que no es tan inmediato.
Para empezar debes usar otro tipo de campo, por ejemplo Binary. Básicamente el tipo Binary te sirve para almacenar
cualquier cosa, una imágen, una canción o cualquier archivo en un formato que Paradox no entienda.
Lo malo es que entonces no hay una forma directa de conectar este tipo de campos a un TDBImage (*) para mostrar y agregar imágenes.
En su lugar debes usar un TImage normal.
Por ejemplo, para agregar una imagen a la tabla puedes cargarla en un TImage con Image.Picture.LoadFromFile (deberás incluir la unidad jpeg) o directamente usando un objeto TJpegImage de la unidad jpeg en caso de que no requieras mostrar la imagen al usuario.
Después deberás usar el método SaveToStream de Image.Picture.Graphic o JpegImage para guardar el contenido a un Stream. Me parece que recomiendan un TBlobStream aunque puedes hacerlo con TStringStream.
Ya desde el Stream puedes copiar el contenido al campo:
Table1.FieldByName('foto').AsString := Stream.Datatring;
Y con esto ya tendrás guardada la imagen.
Para desplegarla tienes que seguir mas o menos los pasos inversos.
Asignas el contenido del campo a un TStringStream al momento de crear el stream:
Stream := TStringStream.Create(Table1.FieldByName('foto').AsString);
Y usas el método LoadFromStream de Image.Picture.Graphic o de JpegImage para cargar la foto.
Te estoy diciendo los pasos de memoria así que puedo estar equivocado en algo. Pero si buscas en los foros encontrarás más detalles. Me parece que hay un hilo del compañero
Snake donde describe con precisón lo que hay que hacer. Yo nada más te estoy describiendo a grandes rasgos el proceso.
(*) Sí existen formas de usar un DBImage para mostrar imagenes jpg pero tienes que construir un derivado de TField que entienda este tipo de datos. Busca en el
Code Central de
Borland Developer Network las
aportaciones de Robert Kuhlmann que versan sobre el tema. Él tiene un código para que puedas usar un DBImage con imágenes jpg.
// Saludos