Thursday, 8 August 2013

Terrible Screenshot JavaFx

Terrible Screenshot JavaFx

I'm trying to capture a screenshot of the current scene and save it as
either a png/jpg and pdf. Both options are successful when it comes to
saving the screenshot however, the image doesn't come out right. As the
image shows, the screenshot is completely awful and I can't seem to make
it work. The image is also cute off when saved for some reason.
public void sceneCapture() throws IOException, InterruptedException,
Exception
{
File fa = new File("test.jpg");
snapshot = quotes.getScene().snapshot(null);
RenderedImage renderedImage = SwingFXUtils.fromFXImage(snapshot, null);
BufferedImage image = new BufferedImage(600, 750,
BufferedImage.TYPE_INT_RGB);
image.setData(renderedImage.getData());
ImageIO.write(image, "jpg", fa);
int[] RGB_MASKS = {0xFF0000, 0xFF00, 0xFF};
ColorModel RGB_OPAQUE = new DirectColorModel(32, RGB_MASKS[0],
RGB_MASKS[1], RGB_MASKS[2]);
java.awt.Image img = Toolkit.getDefaultToolkit().createImage("test.jpg");
PixelGrabber pg = new PixelGrabber(img, 0, 0, -1, -1, true);
pg.grabPixels();
int width = pg.getWidth(), height = pg.getHeight();
DataBuffer buffer = new DataBufferInt((int[]) pg.getPixels(),
pg.getWidth() * pg.getHeight());
WritableRaster raster = Raster.createPackedRaster(buffer, width,
height, width, RGB_MASKS, null);
BufferedImage bi = new BufferedImage(RGB_OPAQUE, raster, false, null);
String to = "test.jpg";
ImageIO.write(bi, "jpg", new File(to));
}
Really need help with this problem. Thank you

No comments:

Post a Comment