Ver Mensaje Individual
  #1  
Antiguo 14-04-2010
toni.vi toni.vi is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Fost(Barcelona)
Posts: 102
Reputación: 24
toni.vi Va por buen camino
Comprimir Imagenes en JPG

Aunque ya se ha tratado el tema, tengo un problema al querer comprimir todo un directorio de imagenes.
El código es:
Código Delphi [-]
procedure TForm1.btComprimirImagenesClick(Sender: TObject);
var
  i : Integer;
  jpg:TJpegImage;
begin

  for i:= 0 to ListBox1.Count -1 do
  begin
      vFichero := ListBox1.Items[i];
      Image1.Picture.LoadFromFile(edDirectorioOrigen.Text + '\' + vFichero);
      Application.ProcessMessages;
      Refresh;
      jpg := TJpegImage.Create;
      jpg.Assign(Image1.Picture);                  
      jpg.CompressionQuality := jpg.CompressionQuality DIV 2;
      jpg.Compress;
      jpg.SaveToFile(edDirectorioDestino.Text + '\' + vFichero);
      jpg.Free;
  end;

end;
Necesito 2 cosas.
1.- Como puedo mantener los attributos de las fotos originales, es decir fecha de creacion o Imagen tomada del dia...etc
2.- He tenido que poner
Application.ProcessMessages;
sino me ponia el tamaño a 0 en el fichero resultante, aun así si hago otros procesos mientras comprimo me pone el tamaño a 0, es porque ejecuta el jpg.assign(image1.picture) antes que se cargue la imagen.
He probado con retrasos y tampoco funciona.

¿Alguna sugerencia?
Gracias.
Responder Con Cita