Class LosslessFactory


  • public final class LosslessFactory
    extends java.lang.Object
    Factory for creating a PDImageXObject containing a lossless compressed image.
    • Field Detail

      • usePredictorEncoder

        static boolean usePredictorEncoder
        Internal, only for benchmark purpose
    • Constructor Detail

      • LosslessFactory

        private LosslessFactory()
    • Method Detail

      • createFromImage

        public static PDImageXObject createFromImage​(PDDocument document,
                                                     java.awt.image.BufferedImage image)
                                              throws java.io.IOException
        Creates a new lossless encoded image XObject from a BufferedImage.

        New for advanced users from 2.0.12 on:
        If you created your image with a non standard ICC colorspace, it will be preserved. (If you load images in java using ImageIO then no need to read this segment) However a new colorspace will be created for each image. So if you create a PDF with several such images, consider replacing the colorspace with a common object to save space. This is done with PDImageXObject.getColorSpace() and PDImageXObject.setColorSpace()

        Parameters:
        document - the document where the image will be created
        image - the BufferedImage to embed
        Returns:
        a new image XObject
        Throws:
        java.io.IOException - if something goes wrong
      • isGrayImage

        private static boolean isGrayImage​(java.awt.image.BufferedImage image)
      • createFromGrayImage

        private static PDImageXObject createFromGrayImage​(java.awt.image.BufferedImage image,
                                                          PDDocument document)
                                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • createFromRGBImage

        private static PDImageXObject createFromRGBImage​(java.awt.image.BufferedImage image,
                                                         PDDocument document)
                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • prepareImageXObject

        static PDImageXObject prepareImageXObject​(PDDocument document,
                                                  byte[] byteArray,
                                                  int width,
                                                  int height,
                                                  int bitsPerComponent,
                                                  PDColorSpace initColorSpace)
                                           throws java.io.IOException
        Create a PDImageXObject using the Flate filter.
        Parameters:
        document - The document.
        byteArray - array with data.
        width - the image width
        height - the image height
        bitsPerComponent - the bits per component
        initColorSpace - the color space
        Returns:
        the newly created PDImageXObject with the data compressed.
        Throws:
        java.io.IOException