Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
Delphi 2005 Personal
|
Thumbnails/Vorschaubilder schnell erstellen
14. Jun 2005, 00:27
Folgend ein Code mit dem man mit ähnlicher Geschwindigkeit wie Windows XP Vorschaubilder aus JPGs erstellen kann:
Delphi-Quellcode:
Function SchnelleVorschaubilder(Datei: String; Groesse: Integer): TBitmap;
var
JPG: TJPEGImage;
Bitm: Tbitmap;
Hoehe, Weite, X: integer;
Verh: Double;
begin
result := TBitmap.Create;
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;
result.Width := Groesse;
result.Height := Groesse;
if Verh >= 1 then
begin
Hoehe := Round(Groesse/Verh);
x := round((Groesse-Hoehe)/2);
result.canvas.StretchDraw(Rect(0,X,Groesse,Hoehe+X),Bitm);
end
else
begin
Weite := Round(Groesse*Verh);
X := round((Groesse-Weite)/2);
result.Canvas.StretchDraw(Rect(x,0,Weite+x,Groesse),Bitm);
end;
end
else
result := nil;
finally
FreeandNil(Bitm);
FreeandNil(JPG);
end;
end;
procedure TForm1.Button1Click(Sender: TObject); // Beispielaufruf
var
Bitmap: TBitmap;
begin
if Opendialog1.Execute then begin
Bitmap := SchnelleVorschaubilder(OpenDialog1.FileName, 60);
try
Image1.Picture.Bitmap.Assign(Bitmap);
finally
Bitmap.Free;
end;
end;
end;
Der Beispielaufruf wurde von omata hier verbessert.
[edit=Chakotay1308]Titel angepasst. Mfg, Chakotay1308[/edit]
[edit=Chakotay1308]Styleguide und verbesserte Zuweisung. Mfg, Chakotay1308[/edit]
|
|
Zitat
|