Class JPEGFactory

java.lang.Object
org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory

public final class JPEGFactory extends Object
Factory for creating a PDImageXObject containing a JPEG compressed image.
  • Field Details

    • LOG

      private static final org.apache.commons.logging.Log LOG
  • Constructor Details

    • JPEGFactory

      private JPEGFactory()
  • Method Details

    • createFromStream

      public static PDImageXObject createFromStream(PDDocument document, InputStream stream) throws IOException
      Creates a new JPEG Image XObject from an input stream containing JPEG data. The input stream data will be preserved and embedded in the PDF file without modification.
      Parameters:
      document - the document where the image will be created
      stream - a stream of JPEG data
      Returns:
      a new Image XObject
      Throws:
      IOException - if the input stream cannot be read
    • createFromByteArray

      public static PDImageXObject createFromByteArray(PDDocument document, byte[] byteArray) throws IOException
      Creates a new JPEG Image XObject from a byte array containing JPEG data.
      Parameters:
      document - the document where the image will be created
      byteArray - bytes of JPEG image
      Returns:
      a new Image XObject
      Throws:
      IOException - if the input stream cannot be read
    • retrieveDimensions

      private static JPEGFactory.Dimensions retrieveDimensions(ByteArrayInputStream stream) throws IOException
      Throws:
      IOException
    • getNumComponentsFromImageMetadata

      private static int getNumComponentsFromImageMetadata(ImageReader reader) throws IOException
      Throws:
      IOException
    • createFromImage

      public static PDImageXObject createFromImage(PDDocument document, BufferedImage image) throws IOException
      Creates a new JPEG PDImageXObject from a BufferedImage.

      Do not read a JPEG image from a stream/file and call this method; you'll get more speed and quality by calling createFromStream() instead.

      Parameters:
      document - the document where the image will be created
      image - the BufferedImage to embed
      Returns:
      a new Image XObject
      Throws:
      IOException - if the JPEG data cannot be written
    • createFromImage

      public static PDImageXObject createFromImage(PDDocument document, BufferedImage image, float quality) throws IOException
      Creates a new JPEG PDImageXObject from a BufferedImage and a given quality.

      Do not read a JPEG image from a stream/file and call this method; you'll get more speed and quality by calling createFromStream() instead. The image will be created with a dpi value of 72 to be stored in metadata.

      Parameters:
      document - the document where the image will be created
      image - the BufferedImage to embed
      quality - The desired JPEG compression quality; between 0 (best compression) and 1 (best image quality). See ImageWriteParam.setCompressionQuality(float) for more details.
      Returns:
      a new Image XObject
      Throws:
      IOException - if the JPEG data cannot be written
    • createFromImage

      public static PDImageXObject createFromImage(PDDocument document, BufferedImage image, float quality, int dpi) throws IOException
      Creates a new JPEG Image XObject from a BufferedImage, a given quality and dpi metadata.

      Do not read a JPEG image from a stream/file and call this method; you'll get more speed and quality by calling createFromStream() instead.

      Parameters:
      document - the document where the image will be created
      image - the BufferedImage to embed
      quality - The desired JPEG compression quality; between 0 (best compression) and 1 (best image quality). See ImageWriteParam.setCompressionQuality(float) for more details.
      dpi - the desired dpi (resolution) value of the JPEG to be stored in metadata. This value has no influence on image content or size.
      Returns:
      a new Image XObject
      Throws:
      IOException - if the JPEG data cannot be written
    • getAlphaImage

      private static BufferedImage getAlphaImage(BufferedImage image)
    • createJPEG

      private static PDImageXObject createJPEG(PDDocument document, BufferedImage image, float quality, int dpi) throws IOException
      Throws:
      IOException
    • getJPEGImageWriter

      private static ImageWriter getJPEGImageWriter() throws IOException
      Throws:
      IOException
    • encodeImageToJPEGStream

      private static byte[] encodeImageToJPEGStream(BufferedImage image, float quality, int dpi) throws IOException
      Throws:
      IOException
    • getColorSpaceFromAWT

      private static PDColorSpace getColorSpaceFromAWT(BufferedImage awtImage)
    • getColorImage

      private static BufferedImage getColorImage(BufferedImage image)