Bitmap horizontal 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 es in Delphi horizontal realisieren kann.
Zuerst müssen diese beiden Typen vereinbart werden:
TRGBArray = array[0..0] of TRGBTriple;
pRGBArray = ^TRGBArray;
Dann der Code:
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:
begin
HorizontalSpiegeln(Image1.Picture.Bitmap);
end;