Código
-> 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...
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009