1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

espenhar imagem em java

Discussão em 'Programação' iniciada por pausa36083, 17 de Dezembro de 2008. (Respostas: 2; Visualizações: 1420)

  1. Boas

    Estou aqui com um problema num programa pa espelhar uma imagem no java, que isto so ta a espelhar metade da imagem!

    Código:
     
    [SIZE=2]public class pixeis{[/SIZE]
    [SIZE=2]public static void main (String[]args){[/SIZE]
    [SIZE=2]Picture img = new Picture("E:\\fac\\Iti\\trabalho 2 iti\\coracao_azul.jpg");[/SIZE]
    [SIZE=2]int colNum = img.getWidth();[/SIZE]
    [SIZE=2]int linNum = img.getHeight();[/SIZE]
    [SIZE=2]int a = colNum;[/SIZE]
    [SIZE=2]int b = linNum;[/SIZE]
     
    [SIZE=2]for (int c=0;c<colNum;c++){[/SIZE]
    [SIZE=2]for (int l=0;l<linNum;l++){[/SIZE]
    [SIZE=2]Pixel thisP = img.getPixel(c,l);[/SIZE]
     
    [SIZE=2]img.getPixel(a-c-1,b-l-1).setRed(img.getPixel(c,l).getRed());[/SIZE]
    [SIZE=2]img.getPixel(a-c-1,b-l-1).setGreen(img.getPixel(c,l).getGreen());[/SIZE]
    [SIZE=2]img.getPixel(a-c-1,b-l-1).setBlue(img.getPixel(c,l).getBlue());[/SIZE]
    [SIZE=2]}[/SIZE]
    [SIZE=2]}[/SIZE]
     
     
     
    [SIZE=2]img.explore();[/SIZE]
    [SIZE=2]}[/SIZE]
    [SIZE=2]}[/SIZE]
    
    Nao consigo descobrir onde esta o problema se alguem o avistar avise :cool: obrigado
     
    Última edição pelo moderador: 17 de Dezembro de 2008
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Não percebo nada de Java (ainda), mas pelo que li no teu código, o que se passa, numa linha de pixels é
    A negrito o resultado final naquela posição; a vermelho a posição onde ele foi buscar o R, G e B. Ele pega numa posição (a vermelho) e substitui outra (a negrito) por essa. Posso ter confundido o que está a negrito ou vermelho, mas o resultado final é o mesmo.

    O que quero dizer, é que estás a pensar mal no algoritmo. Devias trocar as duas posições e executar o algoritmo até metade do comprimento da imagem.
    Precisas de uma variável temporária que armazene o valor do pixel que vais modificar, depois fazer com que esse pixel tenha as cores correspondentes do pixel do lado oposto, e o passo que te falta: trocar o pixel do lado oposto pela variável temporária que tem o valor do pixel inicial.

    Fiz-me entender?
     
    Última edição: 17 de Dezembro de 2008
  3. ah ok ok ja percebi!
    mt obrigado!
     

Partilhar esta Página