Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.062 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Denkfehler bei TransparentStretchBlt

  Alt 3. Jan 2012, 08:37
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;

Geändert von TiGü ( 3. Jan 2012 um 08:39 Uhr)
  Mit Zitat antworten Zitat