Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
Delphi 2005 Personal
|
Re: Schnelles Laden von jpegs [Speicherleck]
26. Sep 2005, 00: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;
|
|
Zitat
|