Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/08/2014, 15:45
Avatar de loganbdn
loganbdn
 
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Como guardar la imagen de toda el area de un Canvas en una variable o Buff

Gracias alfinal lo tengo asi, por una parte para volcar un BufferedImage tengo puesto esto:

Código:
public static void main(....)
{
....
BufferedImage bImagen = new BufferedImage(160,200, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bImagen.createGraphics();
g2.setColor(Color.BLUE);
g2.drawLine(50,50,100,100);
ventana.vuelcaImagen(bImagen); // Pinta primera línea
g2.setColor(Color.RED);
g2.drawLine(100,50,50,100);    // Pinta segunda linea
ventana.vuelcaImagen(bImagen);
...
}
y lo hago fuera de la clase canvas porque me interesa controlar cuando volcar la imagen y que esta luego se pinte al llamar a la clase ventana que hereda de canvas que tiene el paint.


Código:
public class Ventana extends Canvas 
{
	private BufferedImage bImg; 
	
	public Ventana()
	  {
		this.setBackground(Color.black); 	
	  }
	
	public void vuelcaImagen(BufferedImage bImg)
	  {
        this.bImg=bImg;
	  }
	
	public void update(Graphics g) // update() para que no me borre el fondo.
	 {	
	    paint(g);
	 }
	
	public void paint(Graphics g) 
	  {		
		 g.drawImage(this.bImg, 0, 0, this);
	  }
	
}

Por otra parte como decía al principio también quiero capturar una zona de pantalla ya pintada en este caso como ya lo tengo guardado en BufferedImage como lo hago para capturar un trozo de ese BufferedImage y guardarlo en otro BufferedImage diferente?

Si quiero dibujar una imagen .gif dentro del main con g2.drawImage como lo hago pues con g2.drawImage(miImagenGif,posx.posy,this); no puedo ya que el this me marca un error que dice: "Cannot use this in a static context "

Última edición por loganbdn; 07/08/2014 a las 16:50