Olá! 

Estou com um problema muito serio em manipular figuras no Delphi, utilizando 
TBitMap. O que eu quero é rotacionar a figura em 90 graus. Para figuras 
quadradas, funciona perfeitamente. Para figuras retangulares, o que acontece 
é que ele não exibe a figura rotacionada com suas novas dimensoes, apesar de 
rotacionar o seu conteudo. É como se eu obtesse uma figura rotacionada, mas 
com as bordas, as dimensoes da original. Por exemplo, eu tenho uma figura 
com largura 40 e altura 21. Se eu rotacionar ela 90 graus, ela deveria ficar 
com largura 21 e altura 40, certo? Pois é, se eu acessar as propriedades da 
figura, ela realmente está com estas dimensoes, mas na tela, ela é exibida 
com as dimensões antigas... Já tentei dois algoritmos de rotacionar bitmaps, 
e todos apresentaram o mesmo problema... A seguir, o ultimo codigo que eu 
utilizei... Ele é ineficiente para figuras grandes, mas como eu estou 
rotacionando apenas figuras do tamanho de icones, entao pra mim já está 
otimo. Alguem pode me explicar porque nao dá certo isso?? 

function Rotaciona(imagem : TBitmap) : TBitmap;
var
 i,j : integer;
begin
 RESULT := TBitmap.Create;
 RESULT.Width  := imagem.Height;
 RESULT.Height := imagem.Width;
 RESULT.PixelFormat := pf24bit;
 with imagem.Canvas.ClipRect do
 begin
   for i := Left to Right do
   begin
     for j := Top to Bottom do
     begin
       RESULT.Canvas.Pixels[j,Right-i-1] := imagem.Canvas.Pixels[i,j];
     end
   end
 end
end; 

Agradeço a ajuda de todos! 

Até mais! 

José Gustavo 




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a