Girar imagem

Delphi

26/04/2004

Utilizei um código fornecido no fórum para girar uma imagem, só que funciona perfeitamente para imagens ´quadradas´. Quando se faz uso de uma imagem retangular, o resultado é uma imagem cortada, ou seja ela fica quadrada...

Há solução?


Caco

Caco

Curtidas 0

Respostas

Rafael.valler

Rafael.valler

26/04/2004

Tenta pra ver se funciona:

Altura := Largura
Largura:= Altura


GOSTEI 0
Flaviosan

Flaviosan

26/04/2004

caro caco, a ideia do nosso amigo rafael não esta totalmente errada, mas como ele colocou a altura recebendo a largura e depois a largura recebendo a altura, o valor da largura ficara igual pois recebera seu proprio valor que foi passado para a altura anteriormente. para resolver isso crie uma variavel auxiliar e use o seguinte codigo:
Auxiliar := Altura;
Altura := Largura;
Largura := Auxiliar;

Espero ter ajudado.


GOSTEI 0
Nigro

Nigro

26/04/2004

Pelo que vi vocês são feras em imagens
Eu abri o graphex que vem com o Delphi, porém não consigo criar uma ferramenta que ´pinte´ um polígono irregular desenhado pelo usuário, o código que eu tenho é:
Canvas.Brush.Color := clRed;
Canvas.FloodFill(100, 80, clBtnFace, fsBorder);
Forneceeido pelo colega Beppe.

:arrow: Obrigado


GOSTEI 0
Flaviosan

Flaviosan

26/04/2004

Olha nigro, eu não manjo nada de manipulação de imagens, só corrigi um erro basico e muito frequente de programacao.
Desculpe não poder ajudar.


GOSTEI 0
Caco

Caco

26/04/2004

Olha nigro, eu não manjo nada de manipulação de imagens, só corrigi um erro basico e muito frequente de programacao. Desculpe não poder ajudar.


Na verdade já havia tentado este artifício com algumas linhas de código dizendo que a largura da imagem destino seria igual à altura da imagem de origem e etc, mas não funcionou, corta a imagem da mesma forma...


GOSTEI 0
Cebikyn

Cebikyn

26/04/2004

Qual código vc está usando para girar a imagem?


GOSTEI 0
Caco

Caco

26/04/2004

Qual código vc está usando para girar a imagem?


Olá! Na verdade estou usando o código que você citou em outro tópico ´Girar em tantos graus´ que utiliza o TBitmap.
Agradeço qualquer auxílio que possa me dar!


GOSTEI 0
Cebikyn

Cebikyn

26/04/2004

Aquele código deveria funcionar com imagens de qualquer tamanho, seja quadrada ou não. Uma coisa que eu sei que acontece é que ele corta a imagem nas bordas quando ela é girada. Mas existem outras opções além daquele código (como este: http://www.swissdelphicenter.ch/en/showcode.php?id=1540 ), e também uma coleção de componentes que eu gosto muito ( Graphics32 - www.g32.org - freeware c/ código fonte ) que trabalha com imagens, e gira imagens do jeio que vc quiser, até mesmo sem cortar as bordas (ela redimensiona a figura ao rotacionar e tb faz o anti-aliazing das bordas).

De qualquer forma eu vou dar uma olhada no código para ver o que está acontecendo.


GOSTEI 0
Caco

Caco

26/04/2004

Aquele código deveria funcionar com imagens de qualquer tamanho, seja quadrada ou não. Uma coisa que eu sei que acontece é que ele corta a imagem nas bordas quando ela é girada. Mas existem outras opções além daquele código (como este: http://www.swissdelphicenter.ch/en/showcode.php?id=1540 ), e também uma coleção de componentes que eu gosto muito ( Graphics32 - www.g32.org - freeware c/ código fonte ) que trabalha com imagens, e gira imagens do jeio que vc quiser, até mesmo sem cortar as bordas (ela redimensiona a figura ao rotacionar e tb faz o anti-aliazing das bordas). De qualquer forma eu vou dar uma olhada no código para ver o que está acontecendo.


Exatamente, esse código ´corta´ as bordas maiores de uma imagem retangular. De qualquer forma vou dar uma olhada nas dicas que me passou. Obrigado.


GOSTEI 0
Cebikyn

Cebikyn

26/04/2004

Exatamente, esse código ´corta´ as bordas maiores de uma imagem retangular.


Se o problema é esse, então vc tem que usar a Graphics32, pois todos os códigos convencionais fazem isso. De início, eu achei que vc estivesse falando que o código não funcionasse com as imagens retangulares...


GOSTEI 0
Caco

Caco

26/04/2004

[quote:4c056c4f03=´Caco´]Exatamente, esse código ´corta´ as bordas maiores de uma imagem retangular.


Se o problema é esse, então vc tem que usar a Graphics32, pois todos os códigos convencionais fazem isso. De início, eu achei que vc estivesse falando que o código não funcionasse com as imagens retangulares...[/quote:4c056c4f03]

Muito obrigado, baixei e instalei o Graphics32 e resolvi definitivamente meu problema. Lhe sou muito grato pela ajuda! :P


GOSTEI 0
POSTAR