Jo, es geht auch ohne, aber man muss das Ziel-Bitmap sich am Ende selbst Assignen lassen...logisch erklären kann ich es aber nicht.
Für alle die das mal mit der SuFu finden werden, hier noch meine letztendliche Lösung:
Delphi-Quellcode:
procedure TransparentStretch(const Mask, Destination : TBitmap);
begin
SetStretchBltMode(Destination.Canvas.Handle, HALFTONE);
if TransparentStretchBlt(
Destination.Canvas.Handle, 0, 0, Destination.Width, Destination.Height,
Mask.Canvas.Handle, 0, 0, Mask.Width, Mask.Height,
Mask.Canvas.Handle, 0, 0
)
then
begin
Destination.Assign(Destination);
end;
end;