Also nur zur Vervollständigung, vielleicht braucht das Jemand mal:
Delphi-Quellcode:
procedure DoStretch (Const src: TBitmap; dst: TBitmap);
var
//R: TKernelResampler;
R: TLinearResampler;
GR32bitSrc, GR32bitDest: TBitmap32;
begin
GR32BitSrc := TBitmap32.create;
Gr32BitSrc.Assign(src);
GR32bitDest := TBitmap32.create;
GR32bitDest.SetSize(dst.width, dst.Height);
R := TLinearResampler.Create(GR32BitSrc);
//R.Kernel := TLanczosKernel.Create;
GR32bitDest.Draw(GR32bitDest.BoundsRect, GR32bitSrc.BoundsRect, GR32bitSrc);
dst.Assign(GR32BitDest);
GR32BitSrc.Free;
GR32bitDest.Free;
end;
Allerdings dauert es deutlich länger als StretchBlt, das ist wohl derzeit nicht zu toppen.