0

Java/Processing.org を使用して描画アプリケーションを作成しています。

PGraphics オブジェクトを何度もリセットできるようにする必要があります。PGraphics オブジェクトに四角形、線分などを描画するだけであれば、これで問題ありません。しかし、私はそれに画像を描くことができる必要があります。

呼び出すことなく PGraphics オブジェクトをリセットする方法はありますか:

graphic=createGraphics(700, 700, JAVA2D); 

または、この問題を回避する他の方法はありますか?

この問題を強調するためのサンプル コードを次に示します。約40回以上クリックするとクラッシュするはずです...

PImage img;
PImage main_image;

PGraphics graphic;

void setup(){
  size(700,700);
 img=loadImage("img.png"); 
  graphic=createGraphics(700, 700, JAVA2D); 
}

void draw(){

 graphic.beginDraw();
 graphic.image(img,mouseX,mouseY,10,10); 

 graphic.endDraw();
 image(graphic,0,0);


}

void mouseClicked(){

  graphic=createGraphics(700, 700, JAVA2D); 
}
4

2 に答える 2

1

解決しよう::: 毎回 createGraphic を呼び出す代わりに、次の関数を呼び出すだけです。

graphic = setAlpha(graphic);

そしてここに関数があります:

PGraphics setAlpha(PGraphics g){
  g.loadPixels();
 for (int x = 0; x < g.width; x++ ) {
    for (int y = 0; y < g.height; y++ ) {

      // Calculate the 1D pixel location
      int loc = x + y*g.width;

  g.pixels[loc]=color(0,0);
 }  
 } 
 g.updatePixels();
 return g;
}
于 2012-05-25T07:02:45.630 に答える