private BufferedImage pptxToImage()

in thumbnails4j-pptx/src/main/java/co/elastic/thumbnails4j/pptx/PPTXThumbnailer.java [78:94]


    private BufferedImage pptxToImage(XMLSlideShow pptx){
        Dimension pageSize = pptx.getPageSize();
        Dimensions optimizedDimensions = ThumbnailUtils.memoryOptimiseDimension(new Dimensions(pageSize.width, pageSize.height));
        double scaleFactor = ((double) optimizedDimensions.getWidth()) / pageSize.width;
        BufferedImage image = new BufferedImage(optimizedDimensions.getWidth(), optimizedDimensions.getHeight(), BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics = image.createGraphics();
        graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
        graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
        graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
        graphics.setPaint(Color.white);
        graphics.fill(new Rectangle2D.Float(0, 0, optimizedDimensions.getWidth(), optimizedDimensions.getHeight()));
        graphics.scale(scaleFactor, scaleFactor);
        pptx.getSlides().get(0).draw(graphics);
        graphics.dispose();
        return image;
    }