Rotacionando imagens

3 respostas
J

pessoal sou novo no GUJ, em java sou um pouquinho mais velho =D

to precisando muitao rotacionar uma imagem em torno do eixo dela, mas sem desenha-lá na tela, preciso retorna-lá, já dei uma boa olhada nos outros posts aqui e em outros forums e nao encotrei nada q me desse a luz, por favor alguem da uma corrente eletrica pra acender minha lampada ai?! :?:

valeu pessoal :smiley:

3 Respostas

dionat4n

Vou te passar o código de dois métodos de um editor de imagens que eu fiz:

public static BufferedImage verticalFlip(BufferedImage img) {
		
		int w = img.getWidth();		//largura
        int h = img.getHeight();	//altura
        int[] pixels = img.getRGB(0, 0, w, h, null, 0, w);	//vetor de pixels
        
        //varre todo vetor
        int t, lin, col, col2, lim;
        for (lin = 0; lin < h/2; lin++) {
        	lim = w + (w * lin);
        	for (col = w * lin , col2 = w * (h-lin-1); col < lim; col++, col2++) {
        		t = pixels[col];
            	pixels[col] = pixels[col2];
            	pixels[col2] = t;
            }
        }
        
        img.setRGB(0, 0, w, h, pixels, 0, w);
        
		return img;
	}
	
	
	public static BufferedImage horizontalFlip(BufferedImage img) {
		
		int w = img.getWidth();		//largura
        int h = img.getHeight();	//altura
        int[] pixels = img.getRGB(0, 0, w, h, null, 0, w);	//vetor de pixels
        int[] pixelsNew = new int[pixels.length];
        
        //varre todo vetor
        for (int lin = 0; lin < h; lin++) {
        	for (int col = 0; col < w; col++) {
        		pixelsNew[w * lin + col] = pixels[w * lin + w - col -1];
            }
        }

        img.setRGB(0, 0, w, h, pixelsNew, 0, w);
        
		return img;
	}

Um faz o flip vertical e o outro o flip horizontal.

Espero que sirva.

jap1

ou valeu ai… vou ver aqui… vai demorar um pouco pra ver quando fica pronto mas de qualquer forma brigadão!

dionat4n

Aqui tem um tutorial sobre BufferedImage, se for necessário.
http://www.guj.com.br/java.tutorial.artigo.138.1.guj

Criado 7 de fevereiro de 2009
Ultima resposta 8 de fev. de 2009
Respostas 3
Participantes 3