Home » Tipps & Tricks » Grafik » Grafikbearbeitung » Bitmap horizontal spiegeln
Bitmap horizontal spiegeln
Eine der Grundaufgaben eines jeden Grafikprogrammes ist es, Bilder zu spiegeln. Der folgende Tipp zeigt wie man es in Delphi horizontal realisieren kann.
Zuerst müssen diese beiden Typen vereinbart werden:
type TRGBArray = array[0..0] of TRGBTriple; pRGBArray = ^TRGBArray;
Dann der Code:
procedure HorizontalSpiegeln(const Bitmap: TBitmap); var i,j,w: Integer; rowin,rowout: pRGBArray; begin w := bitmap.width*sizeof(TRGBTriple); Getmem(rowIn,w); try for j:= 0 to Bitmap.Height-1 do begin move(Bitmap.Scanline[j]^,rowin^,w); rowout := Bitmap.Scanline[j]; for i := 0 to Bitmap.Width-1 do rowout[i] := rowin[Bitmap.Width-1-i]; end; bitmap.Assign(bitmap); finally Freemem(rowin); end; end;
Ein Aufruf sähe zum Beispiel aus:
procedure TForm1.Button1Click(Sender: TObject); begin HorizontalSpiegeln(Image1.Picture.Bitmap); end;