Ver la Versión Completa : Imagenes en Oracle 7
jnbruguer
22-07-2004, 10:08:33
Buenos dias a todos, os agradeceria que me echaseis una mano, porque no consigo solucionar el siguiente tema:
1. Tipo de campos en Oracle 7 para almacenar una imagen jpg.
2. Como la almaceno y recupero desde delphi.
Gracias todos.:rolleyes:
Intenta con un campo blob de oracle.
Para guardarlo puedes probar con el tipo Stream de Delphi.
Aqui te envio la funcion que guarda la imagen, seria mas o menos asi
function guardarImagen( NombreImagen: String;
Data: TStream): Boolean;
var F: TFileStream;
begin
F := TFileStream.Create(nombreImagen, fmCreate);
try
F.CopyFrom(Data, 0 );
Result:= True;
except
Result:= false;
end;
F.Free;
end;
Para instanciarla es:
guardarimagen('nombre.jgp',Query.CreateBlobStream(Query.FieldByName('IMAGEN'), bmRead));
Espero que te sirva.
Saludos.
jachguate
26-07-2004, 21:05:44
En oracle 7, me parece que el tipo adecuado es Long Raw.
Hasta luego.
;)
kavisch
06-07-2005, 16:52:59
tengo un problema similiar, yo guardo la imagen de la siguiente forma pero no se si esta bien..
tabla1.insert;
tabla1.FieldByName('Imagen').LoadFromFile('c:\ruta\imag.jpg',ftmemo);
tabla1.post;
esto me funciona, pero mi problema es cuando quiero mostrar esta imagen en un Timage.. no me da resultado....:confused:
var
bimp : TBitmap;
ms : TMemoryStream;
Begin
Image1.Visible := True;
bimp := TBitmapCreate;
ms := TMemoryStream.Create;
EmployFOTOGRAFIA.SaveToStream(ms);
bimp.LoadFromStream(ms);
Image1.Picture.Assign(bimp);
ms.Free;
bimp.Free;
end;
:confused:
ayudame porfavor..
gracias,
jachguate
06-07-2005, 18:13:17
si la imagen que grabas es un jpeg, por que queres recuperarlo como bmp??
Lo normal sería recuperarlo como jpeg, no te parece?
var
bimp : TjpegImage;
ms : TMemoryStream;
Begin
Image1.Visible := True;
bimp := TjpegImage.Create;
ms := TMemoryStream.Create;
try
EmployFOTOGRAFIA.SaveToStream(ms);
bimp.LoadFromStream(ms);
Image1.Picture.Assign(bimp);
finally
ms.Free;
bimp.Free;
end;
end;
A tu código le he añadido una clausula try/except para garantizar que se libere siempre la memoria, y además lo he publicado con la etiqueta delphi que debieras usar para publicar trozos de código... ¿notas la diferencia?.
Saludos.
kavisch
07-07-2005, 18:00:10
hola,
lo he hecho mo me dijiste, pero ahora el erro que me desplega es:
JPEG Error #42.....
quiero Preguntarte algo..
si yo guardo la imagen como bmp en mi DB, seria posible recuperarla y mostrarla en el TImage:confused: ?..
Gracias,
jachguate
07-07-2005, 19:16:07
Si es posible almacenarlas en bmp, y también es posible almacenarlas en jpeg.
Según un par de resultados de mi búsqueda, aparentemente el error #42 es por razones de memoria... te recomiendo investigar y probar también por ese lado.
Hasta luego.
;)
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.