image - JavaFx 的可怕截图

标签 image javafx-2 screenshot

我正在 try catch 当前场景的屏幕截图并将其保存为 png/jpg 和 pdf。在保存屏幕截图时,这两个选项都是成功的,但是图像显示不正确。如图所示,屏幕截图非常糟糕,我似乎无法使其工作。由于某种原因保存时,图像也很可爱。

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

确实需要帮助解决这个问题。 谢谢

当前状态:

enter image description here

所需状态:

enter image description here

最佳答案

当我使用 ImageIO 将图像转换为 PNG 时效果很好

下面是我的实现代码

        try {
            SnapshotParameters param = new SnapshotParameters();
            param.setDepthBuffer(true);
            param.setFill(Color.CORNSILK);
            WritableImage snapshot = node.snapshot(param, null);
            BufferedImage tempImg = SwingFXUtils.fromFXImage(snapshot, null);

            File outputfile = new File("e:/tempImg.png");

            ImageIO.write(tempImg, "png", outputfile);

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

关于image - JavaFx 的可怕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18132860/

相关文章:

javafx-2 - 在 JavaFX 2.0 中使用 CSS

javafx-2 - 如何将掩码格式应用于 TextField?

javascript - 如何在点击 PrintScreen 按钮时白屏/黑屏?

c# - 在 C# 中创建图像

ruby - 检测不同分辨率下的图像是否相等

javascript - 单击 Javascript 时如何移动图像?

JavaFX TableView 事件只触发一次?

iphone - RestKit 0.20使用nsdata发布数组Json

JAVA:JFrame 变为黑色后的屏幕截图

Delphi 事件窗口屏幕截图