Criar EFEITO em IMAGEM

Olá pessoal, alguem poderia me ajudar com uma imagem?
Eu criei um programa para abrir uma imagem, criei um menu arquivo e um menu EFEITOS, e presciso fazer 3 efeitos nesta imagem que eu abro, com por exemplo girar a img, duplicar, mudar de cor, algo do tipo, alguem poderia me ajudar?
rdpacato@gmail.com

Cara, não sei como você começou a fazer isso, mas dá pra você fazer todos esses efeitos usando OpenGL.
Existe uma API para trabalhar com OpenGL para o Java, o JOGL.
Dá uma pesquisada sobre ele pra ver se realmente é o que você quer…

Uma dica:
https://jogl.dev.java.net/

[]'s.

Não, eu quero uma coisa bem básica

import javax.swing.;
import java.awt.event.
;
import java.awt.*;

public class Janela extends JFrame implements ActionListener
{
private JMenuBar barraMenu; //Barra de menu
private JMenu menuArquivo, menuEfeitos; // Itens da barra
private JMenuItem menuItemAbrir, menuItemSair; // itens dos menus
private JMenuItem flip;
private PainelJanela painel; // armazena o painel da janela

public Janela()
{
	
	Container pc = getContentPane();
	painel = new PainelJanela();
	pc.add(painel);
	
	criaMenus();
	
	
	setTitle("Visualizador de Imagens");
	setSize(640,480);
	

	addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });
	
}


public void criaMenus()
{
	barraMenu = new JMenuBar();
	menuArquivo = new JMenu("Arquivo");
	menuEfeitos = new JMenu("Efeitos");
	
	menuItemAbrir = new JMenuItem("Abrir");
	menuItemAbrir.addActionListener(this);
	
	menuItemSair = new JMenuItem("Sair");
	menuItemSair.addActionListener(this);
	
	barraMenu.add(menuArquivo);
	barraMenu.add(menuEfeitos);
	menuArquivo.add(menuItemAbrir);
	menuArquivo.add(menuItemSair);
	setJMenuBar(barraMenu); 
}


public void actionPerformed(ActionEvent arg) 
{
	String aux = arg.getActionCommand(); 

	
	if (aux.equals("Abrir"))
	{
		MinhaImagem imagem;
		int largura, altura;
		String nomeArquivo;
		
		largura = Integer.parseInt(JOptionPane.showInputDialog("Digite a largura:"));
		altura = Integer.parseInt(JOptionPane.showInputDialog("Digite a altura:"));
		nomeArquivo = abrirArquivo();
		
		imagem = new MinhaImagem(largura,altura);
		imagem.carregaImagem(nomeArquivo);
		painel.atualizaImagem(imagem);
		painel.repaint();
	}
	
	
	if (aux.equals("Sair"))
		System.exit(0); 
	
}

public String abrirArquivo()
{
	FileDialog fd;
	
	fd = new FileDialog(new Frame(), "Abrir Arquivo", FileDialog.LOAD); 
    
	fd.setFile("*.raw"); 
    fd.setDirectory(".\\"); 
    fd.setLocation(50, 50); 
    fd.setVisible(true); 
    return(fd.getDirectory() + fd.getFile()); 

}

}

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.awt.Image;
import java.awt.image.MemoryImageSource;
import java.io.FileReader;

public class MinhaImagem
{
private Pixel pixels[][]; //matriz de pixels
private int largura; // largura da imagem
private int altura; // altura da imagem

public MinhaImagem(int larg, int alt)
{
	int a, l;
	
	largura = larg;
	altura = alt;
	
	pixels = new Pixel[altura][largura];
	

	for(a=0; a < altura; a++)
	{
		for(l=0; l< largura; l++)
		{
			pixels[a][l] = new Pixel(0,0,0);
		}
	}
	
}

public void setPixel(int posX, int posY, int red, int green, int blue)
{
	pixels[posX][posY] = new Pixel(red,green,blue);
}


public Image geraImagem(JPanel painel)
{
	Image img; 
	int i = 0, a, l;
	int dataPixels[] = new int[altura * largura];
	
	for(a=0; a < altura; a++)
	{
		for(l=0; l< largura; l++)
		{
			dataPixels[i] = pixels[a][l].getIntValue();
			i++;
		}
	}
	
	img = painel.createImage(new MemoryImageSource(largura, altura, dataPixels, 0, largura));
	return img;
}

public void carregaImagem(String arquivo)
{
	int r,g,b;
	int lin = 0, col = 0;
	
	try
	{
		FileReader file = new FileReader(arquivo);
		do
		{
			r = file.read();
			g = file.read();
			b = file.read();
			pixels[lin][col] = new Pixel(r,g,b);
			col++;
			if(col >= largura)
			{
				col = 0;
				lin++;
			}
			
		} while((b != -1) && (lin < altura));
		
	}
	catch(Exception e)
	{
		JOptionPane.showMessageDialog(null,"Erro ao abrir arquivo"+e.toString());
	}

}

}

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.MemoryImageSource;

import javax.swing.JPanel;

public class PainelJanela extends JPanel
{
private Image imagemJava;

public PainelJanela()
{
	imagemJava = criaImagemDefault(50,50);
}


public void paintComponent(Graphics g)
{
	super.paintComponent(g);
	
	
	g.drawImage(imagemJava,100,100,null);
}	

public void atualizaImagem(MinhaImagem imagem)
{
	imagemJava = imagem.geraImagem(this);
}


public Image criaImagemDefault(int largura, int altura)
{
	MinhaImagem img;
	Image imgJava;
	
	img = new MinhaImagem(largura,altura);
	
	imgJava = img.geraImagem(this);
	return imgJava;
}

}

public class Pixel
{
private int red; //atributo de cor vermelha
private int green; //atributo de cor verde
private int blue; //atributo de cor azul

public Pixel(int r, int g, int b)
{
	red = r;
	green = g;
	blue = b;
}

public void setRGB(int r, int g, int b)
{
	red = r;
	green = g;
	blue = b;
}

public void setRed(int value) { red = value; }
public void setGreen(int value) { green = value; }
public void setBlue(int value) { blue = value; }

public int getRed() { return red; }
public int getGreen() { return green; }
public int getBlue() { return blue; }


public int getIntValue()
{
	return (255 << 24) | (red << 16) | (green << 8) | blue; 
}

}

public class Prog
{

public static void main(String args[])
{
	Janela tela = new Janela();
	
	tela.setVisible(true);

}

}

Ai está todas as classes juntas, eu carrego uma imagem “.raw” e tenho que fazer um efeito nela, como eu citei acima, entendeu?
Valeu pela colaboração, to enroscado nisso

Com Java2D voce consegue fazer todas essas funções.

Carrega uma BufferedImage com o ImageIO.load e trabalhe com o Graphics2D que essa imagem gera.

Também acho mais fácil usar o Java 2D.

Cara, edita os seus códigos ali em cima e, por favor, usa a tag code… Aí eles ficam formatados. Se vc ainda não sabe fazer isso, leia esse tutorial:
http://www.guj.com.br/posts/list/50115.java

Você pode aprender sobre Java 2D aqui:
http://java.sun.com/docs/books/tutorial/2d/TOC.html

Eu me perdi nesse site, alguem poderia me dar os códigos cru mesmo, para pegar uma imagem e fezer algo com ela, eu não manjo muito.

Deixem o email para eu enviar os prog zipados galera ai fica mais fácil de vcas me ajudarem

Dá uma olhada nessa classe aqui:
http://www.guj.com.br/posts/list/56248.java#295271

Ela estica/reduz a imagem.
Além disso, ela também pode preencher uma superfície com a mesma imagem (tipo o lado-a-lado do papel de parede).

Dá uma olhada também nesse site:
http://fivedots.coe.psu.ac.th/~ad/jg/

Tem um capítulo sobre imagens que ensina a fazer vários efeitos, com exemplos de código.
Leia o capítulo todo.

http://www.guj.com.br/posts/list/87074.java

Uma brincadeira com Java2D
^^

Alguem tem dicas de material de manipulação de imagem que não use Java2D ( nem Java3D, claro) ?

Olá amigos!

Dêem uma olhada nesse projeto: http://marvin.incubadora.fapesp.br/.

Até mais.