Para rotacionar uma imagem BMP 90 graus, seja direita ou esquerda, utilize o seguinte bloco de instrução;
-> Coloque em um form, dois componentes TImage, nomei-os como Origem e Resultado, e insira dois botões, com as Captions 90º e -90º.
-> Para o evento do 90º digite o código:
procedure TfrmRodar.Mais90Click(Sender: TObject); var
X, Y: integer; begin
Resultado.Width := Origem.Height;
Resultado.Height := Origem.Width;
Resultado.Update; for X := 0 to Origem.Width do for Y := 0 to Origem.Height do
Resultado.Canvas.Pixels[Y, Origem.Width - X] := Origem.Canvas.Pixels
[X,Y]; end;
-> Para o evento do -90º digite o código:
procedure TfrmRodar.Menos90Click(Sender: TObject); var
X, Y: integer; begin
Resultado.Width := Origem.Height;
Resultado.Height := Origem.Width;
Resultado.Update; for X := 0 to Origem.Width do for Y := 0 to Origem.Height do
Resultado.Canvas.Pixels[Origem.Height-Y, X] := Origem.Canvas.Pixels[X,Y]; end;
Pode-se observar que o que foi feito nesse código, e o chamado na matemática de MATRIZ TRANSPOSTA, invertemos as posições pixel a pixel da "Matriz" Origem, para a "Matriz" Resultado.
Espero ter ajudado alguem nessa...
...TK1LL3Z...