Alleggeriamo i file JPEG

A volte si rende necessario rendere più leggeri, in termini di byte, le nostro foto in formato JPEG, ma il ridimensionamento non e’ l'unica via da seguire. La routine proposta consente di ricomprime l'immagine fino a raggiungere le dimensioni desiderate. Prima di scrivere la routine ricordiamo di includere la unit Jpeg.
Tip fornito dal sig. F. Iaccarino

uses Jpeg;

function RecompressImage(FileJPEG: string; maxSize, inc: integer): boolean;
var
  MyJPEG: TJPEGImage;
  MyBMP: TBitmap;
  i,s: integer;
begin
  result:=False;
  i:=100;
  MyJPEG:=TJPEGImage.Create;
  try
    MyJPEG.LoadFromFile(FileJPEG);
    repeat
      MyBMP:=TBitmap.Create;
      try
        MyBMP.Height:=MyJPEG.Height;
        MyBMP.Width:=MyJPEG.Width;
        MyBMP.Canvas.Draw(0,0,MyJPEG);
        MyJPEG.Assign(MyBMP);
        dec(i,inc);
        if i<=0 then
          exit;
        MyJPEG.CompressionQuality:=i;
        MyJPEG.Compress;
        MyJPEG.SaveToFile(FileJPEG+'r');
        s:=GetFileSize(FileJPEG+'r');//,nil);
      finally
        MyBMP.Free;
      end;
    until (s<MaxSize);
  finally
    MyJPEG.Free;
  end;
  DeleteFile(FileJPEG);
  MoveFile(PChar(FileJPEG+'r'),PChar(FileJPEG));
  result:=True;
end;

Di seguito un esempio di utilizzo della funzione:

// Ridimensiona il file indicato in un Edit ad un valore <= a 512Kb
//utilizzando degli step di incremento di compressione di 5 punti.

if not RecompressImage(ImageFile.Text,512*1024,5) then
      ShowMessage('Impossibile ridurre la dimensione dell'immagine');

Enumerare le chiavi del registro di sistema

Il tip consente di enumerare tutte le chiavi di registro modificate in un determinato intervallo di tempo. E' utile per vedere le modifiche effettuate sul registro di Windows da programmi
installati (eventuale spyware allegato a software p2p, etc...) 
Il codice, data la sua prolissita’, e’ presente nel cd-rom allegato alla rivista e/o sul sito web di ioProgrammo (www.ioprogrammo.it) 
Tip fornito dal sig. C. Pasolini