Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   DBimage, Salvar imagen en Archivo Externo (https://www.clubdelphi.com/foros/showthread.php?t=15654)

mtpedro 30-10-2004 18:16:30

DBimage, Salvar imagen en Archivo Externo
 
Tengo un Dbimage, con un popupmenu hay una opcion para grabar la imagen
a un archivo externo, la idea es que al dar click derecho y seleccionando
la opcion grabar fotografia, se Active un Dialogo para grabar
Solo que Me marca error el siguiente codigo, como puedo hacer esta tarea
mi procedimiento es el siguiente:


Tprocedure TFCONSULTAR.GrabarFotografiaExternamen1Click(Sender: TObject);
VAR
NARCHIVO:STRING;
begin

SAVEpicture1.Execute;
image1.Picture.Bitmap.SaveToFile(SAVEpicture1.FileName);
end;


--------------------------------
Te agradecere tu ayuda Pequeño Saltamontes.
SAludos desde TIJUANA, MEXICO. :D

marcoszorrilla 30-10-2004 18:28:23

Prueba de esta manera
Código Delphi [-]
 procedure TForm1.Guardarimagen1Click(Sender: TObject);
 begin
 SavePictureDialog1.Execute;
 Dbimage1.Picture.Bitmap.SaveToFile(SavePictureDialog1.FileName);
 end;

Un Saludo.

mtpedro 30-10-2004 19:31:09

RESPUESTA, lo graba en blanco o en cero
 
Ya intente con tu Propuesta, pero ahora me lo graba en cero
es dedir que el archivo lo genera en tamaño 0 bytes
y dice vista previa no disponible, acaso necesitare mas codigo
para grabar o generar este archivo de imagen ?


Espero tu Respuesta pequeño saltamontes.
y muchas gracias por tu ayuda.

saludos desde TIJUANA,B.C. , MEXICO:D

marcoszorrilla 30-10-2004 22:30:44

Para que te lo reconozca le pones una extensión por defecto, por ejemplo Bmp como en este otro ejemplo.
Código Delphi [-]
 procedure TForm1.Guardarimagen1Click(Sender: TObject);
 begin
 SavePictureDialog1.DefaultExt := GraphicExtension(TBitmap);
 SavePictureDialog1.Execute;
 Dbimage1.Picture.Bitmap.SaveToFile(SavePictureDialog1.FileName);
 end;

Lo he probado y funciona perfectamente.

Un Saludo.

Lepe 31-10-2004 02:51:45

Solo comentar que si pulsas el boton guardaImagen y despues le das a cancelar, tambien va a guardar la imagen, y con el nombre que tuviese anteriormente o bien sin nombre.

Código Delphi [-]
SavePictureDialog1.DefaultExt := GraphicExtension(TBitmap);
if SavePictureDialog1.Execute then
 Dbimage1.Picture.Bitmap.SaveToFile(SavePictureDialog1.FileName);

Offtopic: Nunca habia imaginado que se pudiese complicar tanto para poner la extensión bmp a un archivo :D. Sé que es lo correcto, pero no lo conocía y me ha sorprendido. Gracias Marcos ;)

Saludos.

marcoszorrilla 31-10-2004 11:34:32

Tiene razón Lepe yo no había previsto que se pulsara Escape, incluso debiera añadirse un Try....Except para prever también el fallo en la grabación.

Este es un ejemplo de que los hilos deben de coserse con más de una aguja, para no dejar tomates, si me permite utilizar el lenguaje de las costureras.

Un Saludo.

mtpedro 01-11-2004 18:16:49

Ya encontre solucion a esto, por que no funciono lo anterior
 
Ninguna de lo anterior me funciono, aunque en teoria deberia funcionar,
pero en fin, Estuve buscando informacion sobre manejo de graficos en
manuales Delphi y solucione esto con el siguiente codigo, espero
sea de utilidad quien en el futuro necesite algo parecido.

Gracias pequeños saltamontes !!!!!!!! :D


Código Delphi [-]
 procedure TFCONSULTAR.GrabarFotografiaExternamen1Click(Sender: TObject);
 VAR
   Marchivo: tbitmap;
   jpg:tjpegimage;
   stream:tmemorystream;
 begin
   jpg:=nil;
   stream:=nil;
   JPG:=tjpegimage.create;
   STREAM:=TMEMORYSTREAM.Create;
   image1.Picture.Graphic.SaveToStream(stream);
   STREAM.Position:=0;
   jpg.LoadFromStream(stream);
 
   SAVEPICTUREDIALOG1.Execute;
   JPG.SaveToFile(SAVEPICTUREDIALOG1.FileName+'.JPG');
 
 end;

ATT. PEDRO MORENO T.
Saludos desde TIJUANA, MEXICO.


La franja horaria es GMT +2. Ahora son las 18:24:27.

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