Cool, danke, jetzt klappt es endlich
Hier noch mal meine Funktion, die das Ändern übernimmt:
Delphi-Quellcode:
procedure GroesseAnpassen(BDatei: String);
var GF_O, GF_Z, GF_K: TBitmap32;
KRS: TKernelResampler;
Rect_Z: TRect;
Rect_O: TRect;
begin
GF_O := TBitmap32.Create;
GF_Z := TBitmap32.Create;
GF_K := TBitmap32.Create;
try
KRS := TKernelResampler.Create(GF_Z);
KRS.Kernel := TLanczosKernel.Create;
GF_O.LoadFromFile(BDatei);
GF_Z.SetSize(Screen.DesktopWidth, Screen.DesktopHeight);
Rect_Z := Screen.DesktopRect;
Rect_O.TopLeft := Point(0, 0);
Rect_O.BottomRight := Point(GF_O.Width, GF_O.Height);
KRS.Resample(GF_Z, Rect_Z, Rect_Z, GF_O, Rect_O, DmOpaque, nil);
GF_Z.SaveToFile(BDatei);
finally
FreeAndNil(GF_O);
FreeAndNil(GF_Z);
FreeAndNil(GF_K);
end;
end;
So klappt es auf jeden Fall.
Wenn etwas nicht in Ordnung (Überflüssiges, Vergessenes) ist, bitte schreiben!