Einzelnen Beitrag anzeigen

axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Schnelles Laden von jpegs [Speicherleck]

  Alt 25. Sep 2005, 23:17
Bastel es doch um, so dass erst gar keine Speicherlecks mehr entstehen können:

Delphi-Quellcode:
procedure SchnelleVorschaubilder(Datei: String; Groesse: Integer; Ziel: TBitmap);
var
  JPG: TJPEGImage;
  Bitm: Tbitmap;
  Hoehe, Weite, X: integer;
  Verh: Double;
begin
  JPG := TJPEGImage.Create;
  Bitm := TBitmap.Create;
  try
    JPG.LoadFromFile(Datei);
    JPG.Scale := jsEighth;
    Bitm.Assign(JPG);
    if (Bitm.Height > 0) AND (Bitm.Width > 0) then
    begin
      Verh := Bitm.Width/Bitm.Height;
      Ziel.Width := Groesse;
      Ziel.Height := Groesse;
      if Verh >= 1 then
      begin
        Hoehe := Round(Groesse/Verh);
        x := round((Groesse-Hoehe)/2);
        Ziel.canvas.StretchDraw(Rect(0,X,Groesse,Hoehe+X),Bitm);
      end
      else
      begin
        Weite := Round(Groesse*Verh);
        X := round((Groesse-Weite)/2);
        Ziel.Canvas.StretchDraw(Rect(x,0,Weite+x,Groesse),Bitm);
      end;
    end;
  finally
    FreeandNil(Bitm);
    FreeandNil(JPG);
  end;
end;
  Mit Zitat antworten Zitat