// Отражение по горизонтали Function ReflexionH(source: TBitMap): TBitMap; var i, j: Integer; begin Result:=TBitmap.Create; Result.Height:=source.Height; Result.Width:=source.Width; With source do begin for i:=0 to Width do for j:=0 to Height do Result.Canvas.Pixels[i, j]:=Canvas.Pixels[Width-i-1,j]; end; end;
// Отражение по вертикали Function ReflexionV(source: TBitMap): TBitMap; var i, j: Integer; begin Result:=TBitmap.Create; Result.Height:=source.Height; Result.Width:=source.Width; With source do begin for i:=0 to width do for j:=0 to Height do Result.Canvas.Pixels[i, j]:=Canvas.Pixels[i,Height-j-1]; end; end;
// Отражение и по вертикали и по горизонтали Function ReflexionHV(source: TBitMap): TBitMap; var i, j: Integer; begin Result:=TBitmap.Create; Result.Height:=source.Height; Result.Width:=source.Width; With source do begin for i:=0 to width do for j:=0 to Height do Result.Canvas.Pixels[i, j]:=Canvas.Pixels[Width-i-1,Height-j-1]; end; end;
Пример использования: procedure TForm1.Button1Click(Sender: TObject); begin Image1.Picture.Assign(ReflexionHV(Image1.Picture.Bitmap)); end;
|