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(); 

이 버전을 사용해보십시오.