DruckenMister WongFacebook

Bitmap vertikal spiegeln

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 28.09.2010

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;