Recortar imagem circularmente

Estou tentando fazer um mapa circular para um jogo , então queria cortar uma imagem circularmente pra pintar na tela.
como poderia fazer isso!?


Você quer saber como faz isso em Java2D, opengl ou só na imagem mesmo?

java2d

Acho que você pode tentar dar um clip normal.

private Ellipse2D ellipse = new Ellipse2D.Float(); ellipse.setFrame(x, y, ew, eh); g2.setClip(ellipse); // ou g2.clip(ellipse)
já tentou isso?

Segue um exemplo, o método createClipped faz a mágica acontecer:

[code]package br.com.guj;

import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;

public class Snippet {
private static BufferedImage createClipped(BufferedImage input) {

	int t = Math.min(input.getWidth(), input.getHeight());
	BufferedImage other = new BufferedImage(t, t, input.TYPE_INT_ARGB);
	
	//Obtém o contexto gráfico
	Graphics2D g2d = other.createGraphics();		
	//Define a área de pintura para um círculo		
	g2d.setClip(new Ellipse2D.Double(0, 0, t, t));
	//Desenha a imagem
	g2d.drawImage(input, 0, 0, null);		
	//Libera o contexto gráfico
	g2d.dispose();
	
	return other;
}

private static File newFile(File file, String detail) {
	return new File(file.getParentFile(), file.getName().substring(0,
			file.getName().indexOf("."))
			+ "-" + detail + ".png");

}

public static void main(String[] args) throws IOException {
	JFileChooser chooser = new JFileChooser();
	chooser.setDialogTitle("Escolha a imagem");
	chooser.setFileFilter(new FileNameExtensionFilter("Imagens", "jpg", "png", "bmp"));			
	if (chooser.showOpenDialog(null) != JFileChooser.APPROVE_OPTION)
		return;
	
	BufferedImage redonda = createClipped(ImageIO.read(chooser.getSelectedFile()));
	
	ImageIO.write(redonda, "png", newFile(chooser.getSelectedFile(), "redonda"));
}

}
[/code]



funcionou!
valeu!