2011-01-12 5 views
1

Processingを使用する私のJavaサーブレットでは、PAppletの内容をBufferedImageにレンダリングして、そこからPNGイメージを生成します。 PAppletの内容からBufferedImageを作成する方法は何ですか? BufferedImageを作成してブラウザにレンダリングしなければならないコードは、私が見た例で動作するはずですが、生成する最終的な画像は黒/空です。PAppletの内容からBufferedImageを作成する

まず私が持っている:

private PApplet createPApplet() { 
    PApplet p = new PApplet(); 
    p.init(); 
    p.noLoop();  
    p.size(486, 243); 
    p.background(255); 
    p.stroke(255, 255, 255); 
    p.colorMode(PApplet.RGB, 256, 1, 1); 
    p.translate(p.width/2, p.height/2); 
return p; 

}

はその後、doGetメソッドで、私はあなたの入力のための

PApplet p = createPApplet(); 
    p.loadPixels(); 
    // here I do some drawing with p.point() 
    p.loadPixels(); 
    BufferedImage img = new BufferedImage(486, 243, BufferedImage.TYPE_INT_ARGB); 
    img.setRGB(0, 0, 486, 243, p.pixels, 0, 256); 
    p.draw(); 
    response.setHeader("Content-Type", "image/png"); 
    ImageIO.write(img, "PNG", response.getOutputStream()); 

おかげで誰もが持っています!

答えて

0

同様の環境でコードをテストするのは難しいです。私は問題があなたがloadPixels()描画プロセスの後ではなく、updatePixels()と呼んでいると思います。

PApplet p = createPApplet(); 
p.loadPixels(); 
// here I do some drawing with p.point() 
p.updatePixels(); 

このバージョンを試してください。

関連する問題