Hi,
[I am sorry if this is received more than once. I have submitted
it several times but I aleways received e-mails bouncing it back
saying that my earlier submissions have been denied because
of an error during submission]
I am subclassing the Canvas3D and overriding its postSwap() method
to save the image that is rendered offscreen (as it was described
in previous e-mails by other people). However, the JPEG files that
I get are of very bad quality with different colors than the ones
used in my simulation (black shows as something between green/blue).
Does anyone knows what I may be doing wrong?
Or, at least does anyone know where I can find more
relevant information regarding the classes that I
blindly use (based on the info from previous e-mails)
such as JPEGCodec,JPEGImageEncoder,JPEGEncodeParam, etc
In the constructor of OffScreenCanvas3D that extends
Canvas3D I set the following:
BufferedImage bufferedImage =
new BufferedImage(width, height,BufferedImage.TYPE_INT_ARGB);
ImageComponent2D buffer =
new ImageComponent2D(ImageComponent.FORMAT_RGBA, bufferedImage);
buffer.setCapability(ImageComponent2D.ALLOW_IMAGE_READ);
Raster raster = new Raster(new Point3f(0.0f,0.0f,0.0f),
Raster.RASTER_COLOR, 0,0,
width, height,
buffer, null);
raster.setCapability(Raster.ALLOW_IMAGE_WRITE);
GraphicsContext3D graphicsContext3D = getGraphicsContext3D();
---- and in the postSwap() method I do the following:
graphicsContext3D.readRaster(raster);
bufferedImage = raster.getImage().getImage();
try
{
outputStream = new FileOutputStream(filename);
JPEGImageEncoder imageEncoder =
JPEGCodec.createJPEGEncoder(outputStream);
JPEGEncodeParam jpegEncodeParam =
imageEncoder.getDefaultJPEGEncodeParam(bufferedImage);
jpegEncodeParam.setQuality(1.0f,false);
imageEncoder.setJPEGEncodeParam(jpegEncodeParam);
imageEncoder.encode(bufferedImage);
snapshotJPEG = false;
outputStream.close();
}
Thanks
Petros Komodromos
===========================================================
Petros Komodromos Home address:
Office: 1-245 540 Memorial Drive, Apt#1407
Tel.: (617) 258-9468 Cambridge, MA 02139
[EMAIL PROTECTED] Tel.: (617) 577 -9869 / -5830
http://www.mit.edu/people/petros
Intelligent Engineering Systems Laboratory (IESL)
Massachusetts Institute of Technology
===========================================================
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".