Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-04-2010
toni.vi toni.vi is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Fost(Barcelona)
Posts: 102
Poder: 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
  #2  
Antiguo 15-04-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Cita:
Empezado por toni.vi Ver Mensaje
1.- Como puedo mantener los attributos de las fotos originales, es decir fecha de creacion o Imagen tomada del dia...etc
Para este punto, creo que esto te va a servir:
Código Delphi [-]
function GetFileTimeByName(lpFileName: PAnsiChar; lpCreationTime, lpLastAccessTime, lpLastWriteTime: PFileTime): boolean;
var
  hFile: THandle;
begin
  hFile := CreateFile(lpFileName, GENERIC_READ, FILE_SHARE_READ, Nil, OPEN_EXISTING, 0, 0);
  if hFile <> 0 Then
    try
      Result := GetFileTime(hFile, lpCreationTime, lpLastAccessTime, lpLastWriteTime);
    finally
      CloseHandle(hFile);
    end
  else
    Result := False;
end;

function SetFileTimeByName(lpFileName: PAnsiChar; lpCreationTime, lpLastAccessTime, lpLastWriteTime: PFileTime): boolean;
var
  hFile: THandle;
begin
  hFile := CreateFile(lpFileName, GENERIC_WRITE, FILE_SHARE_READ, Nil, OPEN_EXISTING, 0, 0);
  if hFile <> 0 Then
    try
      Result := SetFileTime(hFile, lpCreationTime, lpLastAccessTime, lpLastWriteTime);
    finally
      CloseHandle(hFile);
    end
  else
    Result := False;
end;

function CopyFileTimes(lpSource, lpDest: PAnsiChar): boolean;
var
  ftCreationTime,
  ftLastAccessTime,
  ftLastWriteTime: TFileTime;
begin
  if GetFileTimeByName(lpSource, @ftCreationTime, @ftLastAccessTime, @ftLastWriteTime) then
    Result := SetFileTimeByName(lpDest, @ftCreationTime, @ftLastAccessTime, @ftLastWriteTime)
  else
    Result := False;
end;

Simplemente deberías utilizar la función CopyFileTimes pasando el archivo origen y destino.

Para el resto... ¿Es necesario que lo cargues en un TImage?

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comprimir Roxy188 Varios 1 23-09-2008 23:52:18
comprimir AVI con la API zidfrid API de Windows 0 20-06-2007 22:40:28
comprimir AVI con la API. zidfrid C++ Builder 1 06-06-2007 22:18:11
Comprimir con UPX Mr.Vaka Varios 6 29-12-2005 14:00:50
comprimir un jpg User_baja1 Gráficos 1 08-07-2005 11:47:56


La franja horaria es GMT +2. Ahora son las 01:12:11.


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
Copyright 1996-2007 Club Delphi