Dear Reader,

Steve Pietrowicz writes about capturing still images in JPEG format (Java 3D
FAQ):
http://tintoy.ncsa.uiuc.edu/~srp/java3d/howto.html#capture

However, I get an exception when I do it. Could someone give me a hint?
Thanks,

Kovalan
Ps. The exception:

Exception occurred during Canvas3D callback:
java.lang.NullPointerException
        at
javax.media.j3d.GraphicsContext3D.readRaster(GraphicsContext3D.java:1
068)
        at TurnCamera$CapturingCanvas.postSwap(TurnCamera.java:128)
        at javax.media.j3d.Renderer.run(Renderer.java:715)

>> The code:

    public class CapturingCanvas extends Canvas3D
    {
      public CapturingCanvas() {
        super( null );
      }
      public void postSwap() {
        GraphicsContext3D  ctx = getGraphicsContext3D();
        Raster ras = new Raster();

        ctx.readRaster(ras);

        // Now strip out the image info
        ImageComponent2D img_src = ras.getImage();
        DepthComponent depth = ras.getDepthComponent();
        java.awt.image.BufferedImage img = img_src.getImage();

        // write that to disk....
        System.out.println( "TODO: Insert write to file code." );
      }
    }

Reply via email to