Procedura odbija bitmapę względem osi Y
procedure FlipHorizontal(var Bitmap:TBitmap);
type
ByteTriple =array[0..2] of byte ; // musimy czytać po 3 bajty żeby nie zamienić kolejności BGR na RGB
var
ByteL,ByteR:^ByteTriple;
ByteTemp:ByteTriple;
H,V:Integer;
begin
Bitmap.PixelFormat:=pf24bit;
for V:=0 to (Bitmap.Height -1 ) do
begin
ByteL:=Bitmap.ScanLine[V];
ByteR:=Bitmap.ScanLine[V];
inc(ByteR,Bitmap.Width -1);
for H:=0 to (Bitmap.Width -1) div 2 do
begin
ByteTemp:=ByteL^;
ByteL^:=ByteR^;
ByteR^:=ByteTemp;
Inc(ByteL);
Dec(ByteR);
end;
end;
end;