Class JPEGFactory
java.lang.Object
org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory
Factory for creating a PDImageXObject containing a JPEG compressed image.
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic PDImageXObject
createFromByteArray
(PDDocument document, byte[] byteArray) Creates a new JPEG Image XObject from a byte array containing JPEG data.static PDImageXObject
createFromImage
(PDDocument document, BufferedImage image) Creates a new JPEG PDImageXObject from a BufferedImage.static PDImageXObject
createFromImage
(PDDocument document, BufferedImage image, float quality) Creates a new JPEG PDImageXObject from a BufferedImage and a given quality.static PDImageXObject
createFromImage
(PDDocument document, BufferedImage image, float quality, int dpi) Creates a new JPEG Image XObject from a BufferedImage, a given quality and dpi metadata.static PDImageXObject
createFromStream
(PDDocument document, InputStream stream) Creates a new JPEG Image XObject from an input stream containing JPEG data.private static PDImageXObject
createJPEG
(PDDocument document, BufferedImage image, float quality, int dpi) private static byte[]
encodeImageToJPEGStream
(BufferedImage image, float quality, int dpi) private static BufferedImage
getAlphaImage
(BufferedImage image) private static BufferedImage
getColorImage
(BufferedImage image) private static PDColorSpace
getColorSpaceFromAWT
(BufferedImage awtImage) private static ImageWriter
private static int
private static JPEGFactory.Dimensions
-
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 createdstream
- 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 createdbyteArray
- 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
- 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 createdimage
- 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 createdimage
- the BufferedImage to embedquality
- The desired JPEG compression quality; between 0 (best compression) and 1 (best image quality). SeeImageWriteParam.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 createdimage
- the BufferedImage to embedquality
- The desired JPEG compression quality; between 0 (best compression) and 1 (best image quality). SeeImageWriteParam.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
-
createJPEG
private static PDImageXObject createJPEG(PDDocument document, BufferedImage image, float quality, int dpi) throws IOException - Throws:
IOException
-
getJPEGImageWriter
- Throws:
IOException
-
encodeImageToJPEGStream
private static byte[] encodeImageToJPEGStream(BufferedImage image, float quality, int dpi) throws IOException - Throws:
IOException
-
getColorSpaceFromAWT
-
getColorImage
-