Home » Tipps & Tricks » Grafik » Grafikbearbeitung » Bitmap vertikal spiegeln

Bitmap vertikal spiegeln

Eine der Grundaufgaben eines jeden Grafikprogrammes ist es, Bilder zu spiegeln.
Der folgende Tipp zeigt wie man in Delphi ein TBitmap vertikal spiegeln kann. Zuerst müssen diese beiden Typen vereinbart werden:

type
  TRGBArray = array[0..0] of TRGBTriple;
  pRGBArray = ^TRGBArray;

Dann der Code:

procedure SpiegelnVertikal(Bitmap : TBitmap);
var j,w :Integer;
    help:TBitmap;
begin
  help := TBitmap.Create;
  try
    help.Width       := Bitmap.Width;
    help.Height      := Bitmap.Height;
    help.PixelFormat := Bitmap.PixelFormat;
    w := Bitmap.Width*sizeof(TRGBTriple);
    for j := 0 to Bitmap.Height-1 do
      move(Bitmap.Scanline[j]^,Help.Scanline[Bitmap.Height - 1 - j]^,w);
    Bitmap.Assign(help);
  finally
    help.free;
  end;
end;

Ein Aufruf sähe zum Beispiel aus:

procedure TForm1.Button1Click(Sender: TObject);
begin
  SpiegelnVertikal(Image1.Picture.Bitmap);
end;