Home » Tipps & Tricks » Grafik » Grafikbearbeitung » Scherenschnitt erstellen

Scherenschnitt erstellen

Will man Sprites mithilfe von SrcAND und SrcInvert darstellen (vgl. Sprite-Tipp), so benötigt man einen Scherenschnitt, also eine zweite Grafik, die an den Stellen weiß ist, die durchsichtig sein sollen und dort schwarz ist, wo die Bildinformationen dargestellt werden sollen. Eine solche Grafik von Hand zu erstellen ist eher mühsam. Der folgende Code generiert einen solchen Scherenschnitt automatisch und zwar werden alle Pixel, die die Farbe Schwarz (RGB 0,0,0) haben, als durchsichtig definiert.

procedure Scherenschnitt (Org, Dest:TImage);
var x,y: integer;
    r:TRect;
begin
  x := Org.Width;
  y := Org.Height;
  Dest.Width := x;
  Dest.Height := y;

  r := Rect(0, 0, x, y);
  Dest.Canvas.Brush.Color:=clWhite;
  Dest.Picture.Bitmap.Canvas.BrushCopy(r, Org.Picture.Bitmap, r, clBlack);

  BitBlt(Dest.Picture.Bitmap.Canvas.Handle, 0, 0, x, y,
    Org.Picture.Bitmap.Canvas.Handle, 0,0, SRCInvert);
end;

Von Christian Rupprecht stammt der Hinweis, wie es einfacher geht:

...
Dest.Assign(Org);
Dest.Mask(clWhite);
...