Editor de imagem com Graphics2D

Fala galera,
Estou mechendo com desenho de polígonos usando o Graphics2D,
para desenho de retangulos, triangulos, efeitos de transparencia, gradiente, semelhante ao Adobe Fireworks
estou usando como área de desenho um Jlabel, e redesenhando a área pelo método paint()

existe alguma forma de otimizar o desenho usando aceleração de hardware?
programas como Fireworks ou Gimp utilizam aceleração de hardware?

Voce pdoe desenhar em uma BufferedImage e mandar seu JPanel (não pelo JLabel) redesenhar o BufferedImage, é possivel pegar o Graphics2D do BufferedImage e mandar desenhar ele no Graphics passado pelo paintComponent (não paint) do JPanel.

BufferedImage é rapido por que estará pré-renderizado e é acelerado por hardware.

Veja mais sobre Java 2D no Ponto V!

Estou seguindo este tutorial - http://www.guj.com.br/articles/138 - para desenhar polígonos no BufferedImage.
mas então a sua idéia seria escrever a imagem no BufferedImage primeiro, para depois escrever no JPanel?
percebo também que neste tutorial o autor usa a classe ImageIcon para escrever o buffer em um JLabel:

[code]import javax.swing.;
import java.awt.
;
import java.awt.image.*;

public class ExemploImagem {
public static void main(String[] args) {
JFrame frm = new JFrame(“Teste Imagem”);
JPanel pan = new JPanel();
JLabel lbl = new JLabel( criarImagem() );
pan.add( lbl );
frm.getContentPane().add( pan );
frm.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frm.pack();
frm.show();
}

private static ImageIcon criarImagem() {
	int width=200, height=200;
	BufferedImage buffer = new BufferedImage( width, height, BufferedImage.TYPE_INT_RGB );
	Graphics g = buffer.createGraphics();
	g.setColor( Color.WHITE );
	g.fillRect( 0, 0, width, height );
	g.setColor( Color.BLACK );
	g.drawLine( 0, 0, width, height );
	return new ImageIcon( buffer );
}

}
[/code]

Consegui, segui as dicas do tópico http://www.guj.com.br/java/219068-desenhar-em-um-bufferedimage-em-tempo-de-execucao
agora eu desenho os pixels no buffer e então ele redesenha a imagem muito mais rápido com o BufferedImage…
Valeu Marky!