Используем специальные методы:
TBimap.FlipHorizontal
TBimap.FlipVertical
TBimap.Rotate
TBitmapSurface.Mirror
TBitmapSurface.Flip
TBitmapSurface.Rotate90
Или получаем доступ к точкам изображения и меняем их расположение.
procedure FlipHorizontal(var ABitmap: TBitmap);
var
Data: TBitmapData;
X, Y: Integer;
Pixel: TAlphaColor;
begin
Assert(ABitmap <> nil);
if ABitmap.Map(TMapAccess.ReadWrite, Data) then
try
for X := 0 to (Data.Width div 2) - 1 do
for Y := 0 to Data.Height - 1 do
begin
Pixel := Data.GetPixel(X, Y);
Data.SetPixel(X, Y, Data.GetPixel(Data.Width - X, Y));
Data.SetPixel(Data.Width - X, Y, Pixel);
end;
finally
ABitmap.Unmap(Data);
end;
end;
Аналогично делается отражение относительно горизонтальной оси.