Hi, I am working on a 3D object viewer, in Java3D. One of the functionalities I'd like to implement is the capability to take a snapshot of the model, that is copying the content of the Canvas3D to a JPEG file. I currently have a class that extends Canvas3D, Viewer3D, that overrides the postSwap() method, in which I do the processing. Unfortunately, the call to the readRaster(Raster) method crashes opengl32.dll every time. Could you tell me what is wrong with my code? I am using Java 2 and Java3D 1.1, all this running on Windows 95. Thank you very much! ---------- /* Code */ // the raster that will contain the captured image private Raster rasSnapshot; // this is set to true when a snapshot must be taken private boolean bTakeSnapshot = false; public void takeSnapshot(String filename) { bTakeSnapshot = true; postSwap(); while (bTakeSnapshot) Thread.currentThread().yield(); BufferedImage bi = rasSnapshot.getImage().getImage(); FileOutputStream fOut = null; try { fOut = new FileOutputStream(filename); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fOut); encoder.encode(bi); } catch (ImageFormatException ife) { } catch (IOException ioe) { } finally { if (fOut != null) { try { fOut.close(); } catch (IOException ioe2) { } } } } public void postSwap() { // original method super.postSwap(); // takes a snapshot if requested if (bTakeSnapshot) { bTakeSnapshot = false; Dimension d = getSize(); BufferedImage bImage = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_ARGB); ImageComponent2D imgComp = new ImageComponent2D( ImageComponent2D.FORMAT_RGB, bImage); rasSnapshot = new Raster(new Point3f(), Raster.RASTER_COLOR, 0, 0, d.width, d.height, imgComp, null); System.out.println("Before readRaster()!"); getGraphicsContext3D().readRaster(rasSnapshot); System.out.println("After readRaster()!"); } }
begin:vcard n:Bilodeau;Guillaume tel;work:(613) 991-5037 x-mozilla-html:FALSE org:National Research Council Canada;Visual Information Technology adr:;;;;;; version:2.1 email;internet:[EMAIL PROTECTED] title:Software Engineer x-mozilla-cpt:;-1 fn:Guillaume Bilodeau end:vcard