procedure RotateRight(BitMap: TImage);
var
FirstC, LastC, c, r: integer;
procedure FixPixels(c, r: integer);
var
SavePix, SavePix2: tColor;
i, NewC, NewR: integer;
begin
SavePix := Bitmap.Canvas.Pixels[c, r];
for i := 1 to 4 do begin
Newc := BitMap.Height - r + 1;
Newr := c;
SavePix2 := BitMap.Canvas.Pixels[Newc, Newr];
Bitmap.Canvas.Pixels[Newc, Newr] := SavePix;
SavePix := SavePix2;
c := NewC;
r := NewR;
end;
end;
begin
if BitMap.Width <> BitMap.Height then exit;
BitMap.Visible := False;
with Bitmap.Canvas do begin
FirstС := 0;
LastС := BitMap.Width;
for r := 0 to BitMap.Height div 2 do begin
for c := FirstС to LastС do FixPixels(c, r);
Inc(FirstC);
Dec(LastC);
end;
end;
BitMap.Visible := True;
end;
[News Group]
Примечание
Вращение происходит на 90 градусов вправо за одно выполнение процедуры. Не забудьте добавить компонент TImage на форму, загрузить изображение и передать TImage в качестве параметра в процедуру вращения.