Class Imaging


  • public final class Imaging
    extends java.lang.Object
    The primary application programming interface (API) to the Imaging library.

    Application Notes

    Using this class

    Almost all of the Apache Commons Imaging library's core functionality can be accessed through the methods provided by this class. The use of the Imaging class is similar to the Java API's ImageIO class, though Imaging supports formats and options not included in the standard Java API.

    All of methods provided by the Imaging class are declared static.

    The Apache Commons Imaging package is a pure Java implementation.

    Format support

    While the Apache Commons Imaging package handles a number of different graphics formats, support for some formats is not yet complete. For the most recent information on support for specific formats, refer to Format Support at the main project development web site.

    Optional parameters for image reading and writing

    Some of the methods provided by this class accept an optional params argument that permits the application to specify elements for special handling. If these specifications are not required by the application, the params argument may be omitted (as appropriate) or a null argument may be provided. In image-writing operations, the option parameters may include options such as data-compression type (if any), color model, or other format-specific data representations. The parameters map may also be used to provide EXIF Tags and other metadata to those formats that support them. In image-reading operations, the parameters may include information about special handling in reading the image data.

    Optional parameters are specified using a Map object (typically, a Java HashMap) to specify a set of keys and values for input. The specification for support keys is provided by the ImagingConstants interface as well as by format-specific interfaces such as JpegContants or TiffConstants.

    Example code

    See the source of the SampleUsage class and other classes in the org.apache.commons.imaging.examples package for examples.

    See Also:
    org.apache.commons.imaging.examples.SampleUsage, Format Support
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String dumpImageFile​(byte[] bytes)
      Write the ImageInfo and format-specific information for the image content of the specified byte array to a string.
      static java.lang.String dumpImageFile​(java.io.File file)
      Write the ImageInfo and format-specific information for the image content of the specified file to a string.
      static java.util.List<java.awt.image.BufferedImage> getAllBufferedImages​(byte[] bytes)
      Gets all images specified by the byte array (some formats may include multiple images within a single data source).
      static java.util.List<java.awt.image.BufferedImage> getAllBufferedImages​(java.io.File file)
      Gets all images specified by the file (some formats may include multiple images within a single data source).
      static java.util.List<java.awt.image.BufferedImage> getAllBufferedImages​(java.io.InputStream is, java.lang.String filename)
      Gets all images specified by the InputStream (some formats may include multiple images within a single data source).
      static java.awt.image.BufferedImage getBufferedImage​(byte[] bytes)
      Reads the first image from a byte array.
      static java.awt.image.BufferedImage getBufferedImage​(byte[] bytes, java.util.Map<java.lang.String,​java.lang.Object> params)
      Reads the first image from a byte array using data-processing options specified through a parameters map.
      static java.awt.image.BufferedImage getBufferedImage​(java.io.File file)
      Reads the first image from a file.
      static java.awt.image.BufferedImage getBufferedImage​(java.io.File file, java.util.Map<java.lang.String,​java.lang.Object> params)
      Reads the first image from a file using data-processing options specified through a parameters map.
      static java.awt.image.BufferedImage getBufferedImage​(java.io.InputStream is)
      Reads the first image from an InputStream.
      static java.awt.image.BufferedImage getBufferedImage​(java.io.InputStream is, java.util.Map<java.lang.String,​java.lang.Object> params)
      Reads the first image from an InputStream using data-processing options specified through a parameters map.
      static FormatCompliance getFormatCompliance​(byte[] bytes)
      Attempts to determine the image format of the specified data and evaluates its format compliance.
      static FormatCompliance getFormatCompliance​(java.io.File file)
      Attempts to determine the image format of the specified data and evaluates its format compliance.
      static java.awt.color.ICC_Profile getICCProfile​(byte[] bytes)
      Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static java.awt.color.ICC_Profile getICCProfile​(byte[] bytes, java.util.Map<java.lang.String,​java.lang.Object> params)
      Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static java.awt.color.ICC_Profile getICCProfile​(java.io.File file)
      Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static java.awt.color.ICC_Profile getICCProfile​(java.io.File file, java.util.Map<java.lang.String,​java.lang.Object> params)
      Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static java.awt.color.ICC_Profile getICCProfile​(java.io.InputStream is, java.lang.String filename)
      Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static java.awt.color.ICC_Profile getICCProfile​(java.io.InputStream is, java.lang.String filename, java.util.Map<java.lang.String,​java.lang.Object> params)
      Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static byte[] getICCProfileBytes​(byte[] bytes)
      Extracts the raw bytes of an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static byte[] getICCProfileBytes​(byte[] bytes, java.util.Map<java.lang.String,​java.lang.Object> params)
      Extracts the raw bytes of an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static byte[] getICCProfileBytes​(java.io.File file)
      Extracts the raw bytes of an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static byte[] getICCProfileBytes​(java.io.File file, java.util.Map<java.lang.String,​java.lang.Object> params)
      Extracts the raw bytes of an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.
      static ImageInfo getImageInfo​(byte[] bytes)
      Parses the "image info" of an image.
      static ImageInfo getImageInfo​(byte[] bytes, java.util.Map<java.lang.String,​java.lang.Object> params)
      Parses the "image info" of an image.
      static ImageInfo getImageInfo​(java.io.File file)
      Parses the "image info" of an image file.
      static ImageInfo getImageInfo​(java.io.File file, java.util.Map<java.lang.String,​java.lang.Object> params)
      Parses the "image info" of an image file.
      static ImageInfo getImageInfo​(java.io.InputStream is, java.lang.String filename)
      Parses the "image info" of an image.
      static ImageInfo getImageInfo​(java.io.InputStream is, java.lang.String filename, java.util.Map<java.lang.String,​java.lang.Object> params)
      Parses the "image info" of an image.
      static ImageInfo getImageInfo​(java.lang.String filename, byte[] bytes)
      Parses the "image info" of an image.
      static ImageInfo getImageInfo​(java.lang.String filename, byte[] bytes, java.util.Map<java.lang.String,​java.lang.Object> params)
      Parses the "image info" of an image.
      static java.awt.Dimension getImageSize​(byte[] bytes)
      Determines the width and height of an image.
      static java.awt.Dimension getImageSize​(byte[] bytes, java.util.Map<java.lang.String,​java.lang.Object> params)
      Determines the width and height of an image.
      static java.awt.Dimension getImageSize​(java.io.File file)
      Determines the width and height of an image file.
      static java.awt.Dimension getImageSize​(java.io.File file, java.util.Map<java.lang.String,​java.lang.Object> params)
      Determines the width and height of an image file.
      static java.awt.Dimension getImageSize​(java.io.InputStream is, java.lang.String filename)
      Determines the width and height of an image.
      static java.awt.Dimension getImageSize​(java.io.InputStream is, java.lang.String filename, java.util.Map<java.lang.String,​java.lang.Object> params)
      Determines the width and height of an image.
      static java.awt.Dimension getImageSize​(ByteSource byteSource, java.util.Map<java.lang.String,​java.lang.Object> params)  
      static org.apache.commons.imaging.common.ImageMetadata getMetadata​(byte[] bytes)
      Parses the metadata of an image.
      static org.apache.commons.imaging.common.ImageMetadata getMetadata​(byte[] bytes, java.util.Map<java.lang.String,​java.lang.Object> params)
      Parses the metadata of an image.
      static org.apache.commons.imaging.common.ImageMetadata getMetadata​(java.io.File file)
      Parses the metadata of an image file.
      static org.apache.commons.imaging.common.ImageMetadata getMetadata​(java.io.File file, java.util.Map<java.lang.String,​java.lang.Object> params)
      Parses the metadata of an image file.
      static org.apache.commons.imaging.common.ImageMetadata getMetadata​(java.io.InputStream is, java.lang.String filename)
      Parses the metadata of an image file.
      static org.apache.commons.imaging.common.ImageMetadata getMetadata​(java.io.InputStream is, java.lang.String filename, java.util.Map<java.lang.String,​java.lang.Object> params)
      Parses the metadata of an image file.
      static java.lang.String getXmpXml​(byte[] bytes)
      Extracts the embedded XML metadata as an XML string.
      static java.lang.String getXmpXml​(byte[] bytes, java.util.Map<java.lang.String,​java.lang.Object> params)
      Extracts the embedded XML metadata as an XML string.
      static java.lang.String getXmpXml​(java.io.File file)
      Extracts the embedded XML metadata as an XML string.
      static java.lang.String getXmpXml​(java.io.File file, java.util.Map<java.lang.String,​java.lang.Object> params)
      Extracts the embedded XML metadata as an XML string.
      static java.lang.String getXmpXml​(java.io.InputStream is, java.lang.String filename)
      Extracts the embedded XML metadata as an XML string.
      static java.lang.String getXmpXml​(java.io.InputStream is, java.lang.String filename, java.util.Map<java.lang.String,​java.lang.Object> params)
      Extracts the embedded XML metadata as an XML string.
      static java.lang.String getXmpXml​(ByteSource byteSource, java.util.Map<java.lang.String,​java.lang.Object> params)
      Extracts the embedded XML metadata as an XML string.
      static ImageFormat guessFormat​(byte[] bytes)
      Attempts to determine the image format of a file based on its "magic numbers," the first bytes of the data.
      static ImageFormat guessFormat​(java.io.File file)
      Attempts to determine the image format of a file based on its "magic numbers," the first bytes of the data.
      static ImageFormat guessFormat​(ByteSource byteSource)
      Attempts to determine the image format of a file based on its "magic numbers," the first bytes of the data.
      static boolean hasImageFileExtension​(java.io.File file)
      Attempts to determine if a file contains an image recorded in a supported graphics format based on its file-name extension (for example ".jpg", ".gif", ".png", etc.).
      static boolean hasImageFileExtension​(java.lang.String filename)
      Attempts to determine if a file contains an image recorded in a supported graphics format based on its file-name extension (for example ".jpg", ".gif", ".png", etc.).
      static void writeImage​(java.awt.image.BufferedImage src, java.io.File file, ImageFormat format, java.util.Map<java.lang.String,​java.lang.Object> params)
      Writes the content of a BufferedImage to a file using the specified image format.
      static void writeImage​(java.awt.image.BufferedImage src, java.io.OutputStream os, ImageFormat format, java.util.Map<java.lang.String,​java.lang.Object> params)
      Writes the content of a BufferedImage to an OutputStream using the specified image format.
      static byte[] writeImageToBytes​(java.awt.image.BufferedImage src, ImageFormat format, java.util.Map<java.lang.String,​java.lang.Object> params)
      Writes the content of a BufferedImage to a byte array using the specified image format.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • hasImageFileExtension

        public static boolean hasImageFileExtension​(java.io.File file)
        Attempts to determine if a file contains an image recorded in a supported graphics format based on its file-name extension (for example ".jpg", ".gif", ".png", etc.).
        Parameters:
        file - A valid File object providing a reference to a file that may contain an image.
        Returns:
        true if the file-name includes a supported image format file extension; otherwise, false.
      • hasImageFileExtension

        public static boolean hasImageFileExtension​(java.lang.String filename)
        Attempts to determine if a file contains an image recorded in a supported graphics format based on its file-name extension (for example ".jpg", ".gif", ".png", etc.).
        Parameters:
        filename - A valid string representing name of file which may contain an image.
        Returns:
        true if the filename has an image format file extension.
      • guessFormat

        public static ImageFormat guessFormat​(byte[] bytes)
                                       throws ImageReadException,
                                              java.io.IOException
        Attempts to determine the image format of a file based on its "magic numbers," the first bytes of the data.

        Many graphics format specify identifying byte values that appear at the beginning of the data file. This method checks for such identifying elements and returns a ImageFormat enumeration indicating what it detects. Note that this method can return "false positives" in cases where non-image files begin with the specified byte values.

        Parameters:
        bytes - Byte array containing an image file.
        Returns:
        An ImageFormat, such as ImageFormat.IMAGE_FORMAT_JPEG. Returns ImageFormat.IMAGE_FORMAT_UNKNOWN if the image type cannot be determined.
        Throws:
        ImageReadException
        java.io.IOException
      • guessFormat

        public static ImageFormat guessFormat​(java.io.File file)
                                       throws ImageReadException,
                                              java.io.IOException
        Attempts to determine the image format of a file based on its "magic numbers," the first bytes of the data.

        Many graphics formats specify identifying byte values that appear at the beginning of the data file. This method checks for such identifying elements and returns a ImageFormat enumeration indicating what it detects. Note that this method can return "false positives" in cases where non-image files begin with the specified byte values.

        Parameters:
        file - File containing image data.
        Returns:
        An ImageFormat, such as ImageFormat.IMAGE_FORMAT_JPEG. Returns ImageFormat.IMAGE_FORMAT_UNKNOWN if the image type cannot be determined.
        Throws:
        ImageReadException
        java.io.IOException
      • guessFormat

        public static ImageFormat guessFormat​(ByteSource byteSource)
                                       throws ImageReadException,
                                              java.io.IOException
        Attempts to determine the image format of a file based on its "magic numbers," the first bytes of the data.

        Many graphics formats specify identifying byte values that appear at the beginning of the data file. This method checks for such identifying elements and returns a ImageFormat enumeration indicating what it detects. Note that this method can return "false positives" in cases where non-image files begin with the specified byte values.

        Parameters:
        byteSource - a valid ByteSource object potentially supplying data for an image.
        Returns:
        An ImageFormat, such as ImageFormat.IMAGE_FORMAT_JPEG. Returns ImageFormat.IMAGE_FORMAT_UNKNOWN if the image type cannot be determined.
        Throws:
        ImageReadException - in the event of an unsuccessful attempt to read the image data
        java.io.IOException - in the event of an unrecoverable I/O condition.
      • getICCProfile

        public static java.awt.color.ICC_Profile getICCProfile​(byte[] bytes)
                                                        throws ImageReadException,
                                                               java.io.IOException
        Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        Parameters:
        bytes - Byte array containing an image file.
        Returns:
        An instance of ICC_Profile or null if the image contains no ICC profile.
        Throws:
        ImageReadException
        java.io.IOException
      • getICCProfile

        public static java.awt.color.ICC_Profile getICCProfile​(byte[] bytes,
                                                               java.util.Map<java.lang.String,​java.lang.Object> params)
                                                        throws ImageReadException,
                                                               java.io.IOException
        Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        Parameters:
        bytes - Byte array containing an image file.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of ICC_Profile or null if the image contains no ICC profile..
        Throws:
        ImageReadException
        java.io.IOException
      • getICCProfile

        public static java.awt.color.ICC_Profile getICCProfile​(java.io.InputStream is,
                                                               java.lang.String filename)
                                                        throws ImageReadException,
                                                               java.io.IOException
        Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        Returns:
        An instance of ICC_Profile or null if the image contains no ICC profile..
        Throws:
        ImageReadException
        java.io.IOException
      • getICCProfile

        public static java.awt.color.ICC_Profile getICCProfile​(java.io.InputStream is,
                                                               java.lang.String filename,
                                                               java.util.Map<java.lang.String,​java.lang.Object> params)
                                                        throws ImageReadException,
                                                               java.io.IOException
        Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of ICC_Profile or null if the image contains no ICC profile..
        Throws:
        ImageReadException
        java.io.IOException
      • getICCProfile

        public static java.awt.color.ICC_Profile getICCProfile​(java.io.File file)
                                                        throws ImageReadException,
                                                               java.io.IOException
        Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        Parameters:
        file - File containing image data.
        Returns:
        An instance of ICC_Profile or null if the image contains no ICC profile..
        Throws:
        ImageReadException
        java.io.IOException
      • getICCProfile

        public static java.awt.color.ICC_Profile getICCProfile​(java.io.File file,
                                                               java.util.Map<java.lang.String,​java.lang.Object> params)
                                                        throws ImageReadException,
                                                               java.io.IOException
        Extracts an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        Parameters:
        file - File containing image data.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of ICC_Profile or null if the image contains no ICC profile..
        Throws:
        ImageReadException
        java.io.IOException
      • getICCProfileBytes

        public static byte[] getICCProfileBytes​(byte[] bytes)
                                         throws ImageReadException,
                                                java.io.IOException
        Extracts the raw bytes of an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        To parse the result use IccProfileParser or ICC_Profile.getInstance(bytes).

        Parameters:
        bytes - Byte array containing an image file.
        Returns:
        A byte array.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        IccProfileParser, ICC_Profile
      • getICCProfileBytes

        public static byte[] getICCProfileBytes​(byte[] bytes,
                                                java.util.Map<java.lang.String,​java.lang.Object> params)
                                         throws ImageReadException,
                                                java.io.IOException
        Extracts the raw bytes of an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        To parse the result use IccProfileParser or ICC_Profile.getInstance(bytes).

        Parameters:
        bytes - Byte array containing an image file.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        A byte array.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        IccProfileParser, ICC_Profile
      • getICCProfileBytes

        public static byte[] getICCProfileBytes​(java.io.File file)
                                         throws ImageReadException,
                                                java.io.IOException
        Extracts the raw bytes of an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        To parse the result use IccProfileParser or ICC_Profile.getInstance(bytes).

        Parameters:
        file - File containing image data.
        Returns:
        A byte array.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        IccProfileParser, ICC_Profile
      • getICCProfileBytes

        public static byte[] getICCProfileBytes​(java.io.File file,
                                                java.util.Map<java.lang.String,​java.lang.Object> params)
                                         throws ImageReadException,
                                                java.io.IOException
        Extracts the raw bytes of an ICC Profile (if present) from JPEG, PNG, PSD (Photoshop) and TIFF images.

        To parse the result use IccProfileParser or ICC_Profile.getInstance(bytes).

        Parameters:
        file - File containing image data.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        A byte array.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        IccProfileParser, ICC_Profile
      • getImageInfo

        public static ImageInfo getImageInfo​(java.lang.String filename,
                                             byte[] bytes,
                                             java.util.Map<java.lang.String,​java.lang.Object> params)
                                      throws ImageReadException,
                                             java.io.IOException
        Parses the "image info" of an image.

        "Image info" is a summary of basic information about the image such as: width, height, file format, bit depth, color type, etc.

        Not to be confused with "image metadata."

        Parameters:
        filename - String.
        bytes - Byte array containing an image file.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of ImageInfo.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageInfo
      • getImageInfo

        public static ImageInfo getImageInfo​(java.lang.String filename,
                                             byte[] bytes)
                                      throws ImageReadException,
                                             java.io.IOException
        Parses the "image info" of an image.

        "Image info" is a summary of basic information about the image such as: width, height, file format, bit depth, color type, etc.

        Not to be confused with "image metadata."

        Parameters:
        filename - String.
        bytes - Byte array containing an image file.
        Returns:
        An instance of ImageInfo.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageInfo
      • getImageInfo

        public static ImageInfo getImageInfo​(java.io.InputStream is,
                                             java.lang.String filename)
                                      throws ImageReadException,
                                             java.io.IOException
        Parses the "image info" of an image.

        "Image info" is a summary of basic information about the image such as: width, height, file format, bit depth, color type, etc.

        Not to be confused with "image metadata."

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        Returns:
        An instance of ImageInfo.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageInfo
      • getImageInfo

        public static ImageInfo getImageInfo​(java.io.InputStream is,
                                             java.lang.String filename,
                                             java.util.Map<java.lang.String,​java.lang.Object> params)
                                      throws ImageReadException,
                                             java.io.IOException
        Parses the "image info" of an image.

        "Image info" is a summary of basic information about the image such as: width, height, file format, bit depth, color type, etc.

        Not to be confused with "image metadata."

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of ImageInfo.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageInfo
      • getImageInfo

        public static ImageInfo getImageInfo​(byte[] bytes)
                                      throws ImageReadException,
                                             java.io.IOException
        Parses the "image info" of an image.

        "Image info" is a summary of basic information about the image such as: width, height, file format, bit depth, color type, etc.

        Not to be confused with "image metadata."

        Parameters:
        bytes - Byte array containing an image file.
        Returns:
        An instance of ImageInfo.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageInfo
      • getImageInfo

        public static ImageInfo getImageInfo​(byte[] bytes,
                                             java.util.Map<java.lang.String,​java.lang.Object> params)
                                      throws ImageReadException,
                                             java.io.IOException
        Parses the "image info" of an image.

        "Image info" is a summary of basic information about the image such as: width, height, file format, bit depth, color type, etc.

        Not to be confused with "image metadata."

        Parameters:
        bytes - Byte array containing an image file.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of ImageInfo.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageInfo
      • getImageInfo

        public static ImageInfo getImageInfo​(java.io.File file,
                                             java.util.Map<java.lang.String,​java.lang.Object> params)
                                      throws ImageReadException,
                                             java.io.IOException
        Parses the "image info" of an image file.

        "Image info" is a summary of basic information about the image such as: width, height, file format, bit depth, color type, etc.

        Not to be confused with "image metadata."

        Parameters:
        file - File containing image data.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of ImageInfo.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageInfo
      • getImageInfo

        public static ImageInfo getImageInfo​(java.io.File file)
                                      throws ImageReadException,
                                             java.io.IOException
        Parses the "image info" of an image file.

        "Image info" is a summary of basic information about the image such as: width, height, file format, bit depth, color type, etc.

        Not to be confused with "image metadata."

        Parameters:
        file - File containing image data.
        Returns:
        An instance of ImageInfo.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageInfo
      • getImageSize

        public static java.awt.Dimension getImageSize​(java.io.InputStream is,
                                                      java.lang.String filename)
                                               throws ImageReadException,
                                                      java.io.IOException
        Determines the width and height of an image.

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        Returns:
        The width and height of the image.
        Throws:
        ImageReadException
        java.io.IOException
      • getImageSize

        public static java.awt.Dimension getImageSize​(java.io.InputStream is,
                                                      java.lang.String filename,
                                                      java.util.Map<java.lang.String,​java.lang.Object> params)
                                               throws ImageReadException,
                                                      java.io.IOException
        Determines the width and height of an image.

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        The width and height of the image.
        Throws:
        ImageReadException
        java.io.IOException
      • getImageSize

        public static java.awt.Dimension getImageSize​(byte[] bytes)
                                               throws ImageReadException,
                                                      java.io.IOException
        Determines the width and height of an image.

        Parameters:
        bytes - Byte array containing an image file.
        Returns:
        The width and height of the image.
        Throws:
        ImageReadException
        java.io.IOException
      • getImageSize

        public static java.awt.Dimension getImageSize​(byte[] bytes,
                                                      java.util.Map<java.lang.String,​java.lang.Object> params)
                                               throws ImageReadException,
                                                      java.io.IOException
        Determines the width and height of an image.

        Parameters:
        bytes - Byte array containing an image file.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        The width and height of the image.
        Throws:
        ImageReadException
        java.io.IOException
      • getImageSize

        public static java.awt.Dimension getImageSize​(java.io.File file)
                                               throws ImageReadException,
                                                      java.io.IOException
        Determines the width and height of an image file.

        Parameters:
        file - File containing image data.
        Returns:
        The width and height of the image.
        Throws:
        ImageReadException
        java.io.IOException
      • getImageSize

        public static java.awt.Dimension getImageSize​(java.io.File file,
                                                      java.util.Map<java.lang.String,​java.lang.Object> params)
                                               throws ImageReadException,
                                                      java.io.IOException
        Determines the width and height of an image file.

        Parameters:
        file - File containing image data.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        The width and height of the image.
        Throws:
        ImageReadException
        java.io.IOException
      • getImageSize

        public static java.awt.Dimension getImageSize​(ByteSource byteSource,
                                                      java.util.Map<java.lang.String,​java.lang.Object> params)
                                               throws ImageReadException,
                                                      java.io.IOException
        Throws:
        ImageReadException
        java.io.IOException
      • getXmpXml

        public static java.lang.String getXmpXml​(java.io.InputStream is,
                                                 java.lang.String filename)
                                          throws ImageReadException,
                                                 java.io.IOException
        Extracts the embedded XML metadata as an XML string.

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        Returns:
        Xmp Xml as String, if present. Otherwise, returns null.
        Throws:
        ImageReadException
        java.io.IOException
      • getXmpXml

        public static java.lang.String getXmpXml​(java.io.InputStream is,
                                                 java.lang.String filename,
                                                 java.util.Map<java.lang.String,​java.lang.Object> params)
                                          throws ImageReadException,
                                                 java.io.IOException
        Extracts the embedded XML metadata as an XML string.

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        Xmp Xml as String, if present. Otherwise, returns null.
        Throws:
        ImageReadException
        java.io.IOException
      • getXmpXml

        public static java.lang.String getXmpXml​(byte[] bytes)
                                          throws ImageReadException,
                                                 java.io.IOException
        Extracts the embedded XML metadata as an XML string.

        Parameters:
        bytes - Byte array containing an image file.
        Returns:
        Xmp Xml as String, if present. Otherwise, returns null.
        Throws:
        ImageReadException
        java.io.IOException
      • getXmpXml

        public static java.lang.String getXmpXml​(byte[] bytes,
                                                 java.util.Map<java.lang.String,​java.lang.Object> params)
                                          throws ImageReadException,
                                                 java.io.IOException
        Extracts the embedded XML metadata as an XML string.

        Parameters:
        bytes - Byte array containing an image file.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        Xmp Xml as String, if present. Otherwise, returns null.
        Throws:
        ImageReadException
        java.io.IOException
      • getXmpXml

        public static java.lang.String getXmpXml​(java.io.File file)
                                          throws ImageReadException,
                                                 java.io.IOException
        Extracts the embedded XML metadata as an XML string.

        Parameters:
        file - File containing image data.
        Returns:
        Xmp Xml as String, if present. Otherwise, returns null.
        Throws:
        ImageReadException
        java.io.IOException
      • getXmpXml

        public static java.lang.String getXmpXml​(java.io.File file,
                                                 java.util.Map<java.lang.String,​java.lang.Object> params)
                                          throws ImageReadException,
                                                 java.io.IOException
        Extracts the embedded XML metadata as an XML string.

        Parameters:
        file - File containing image data.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        Xmp Xml as String, if present. Otherwise, returns null.
        Throws:
        ImageReadException
        java.io.IOException
      • getXmpXml

        public static java.lang.String getXmpXml​(ByteSource byteSource,
                                                 java.util.Map<java.lang.String,​java.lang.Object> params)
                                          throws ImageReadException,
                                                 java.io.IOException
        Extracts the embedded XML metadata as an XML string.

        Parameters:
        byteSource - File containing image data.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        Xmp Xml as String, if present. Otherwise, returns null.
        Throws:
        ImageReadException
        java.io.IOException
      • getMetadata

        public static org.apache.commons.imaging.common.ImageMetadata getMetadata​(byte[] bytes)
                                                                           throws ImageReadException,
                                                                                  java.io.IOException
        Parses the metadata of an image. This metadata depends on the format of the image.

        JPEG/JFIF files may contain EXIF and/or IPTC metadata. PNG files may contain comments. TIFF files may contain metadata.

        The instance of IImageMetadata returned by getMetadata() should be upcast (depending on image format).

        Not to be confused with "image info."

        Parameters:
        bytes - Byte array containing an image file.
        Returns:
        An instance of IImageMetadata.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageMetadata
      • getMetadata

        public static org.apache.commons.imaging.common.ImageMetadata getMetadata​(byte[] bytes,
                                                                                  java.util.Map<java.lang.String,​java.lang.Object> params)
                                                                           throws ImageReadException,
                                                                                  java.io.IOException
        Parses the metadata of an image. This metadata depends on the format of the image.

        JPEG/JFIF files may contain EXIF and/or IPTC metadata. PNG files may contain comments. TIFF files may contain metadata.

        The instance of IImageMetadata returned by getMetadata() should be upcast (depending on image format).

        Not to be confused with "image info."

        Parameters:
        bytes - Byte array containing an image file.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of IImageMetadata.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageMetadata
      • getMetadata

        public static org.apache.commons.imaging.common.ImageMetadata getMetadata​(java.io.InputStream is,
                                                                                  java.lang.String filename)
                                                                           throws ImageReadException,
                                                                                  java.io.IOException
        Parses the metadata of an image file. This metadata depends on the format of the image.

        JPEG/JFIF files may contain EXIF and/or IPTC metadata. PNG files may contain comments. TIFF files may contain metadata.

        The instance of IImageMetadata returned by getMetadata() should be upcast (depending on image format).

        Not to be confused with "image info."

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        Returns:
        An instance of IImageMetadata.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageMetadata
      • getMetadata

        public static org.apache.commons.imaging.common.ImageMetadata getMetadata​(java.io.InputStream is,
                                                                                  java.lang.String filename,
                                                                                  java.util.Map<java.lang.String,​java.lang.Object> params)
                                                                           throws ImageReadException,
                                                                                  java.io.IOException
        Parses the metadata of an image file. This metadata depends on the format of the image.

        JPEG/JFIF files may contain EXIF and/or IPTC metadata. PNG files may contain comments. TIFF files may contain metadata.

        The instance of IImageMetadata returned by getMetadata() should be upcast (depending on image format).

        Not to be confused with "image info."

        Parameters:
        is - InputStream from which to read image data.
        filename - Filename associated with image data (optional).
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of IImageMetadata.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageMetadata
      • getMetadata

        public static org.apache.commons.imaging.common.ImageMetadata getMetadata​(java.io.File file)
                                                                           throws ImageReadException,
                                                                                  java.io.IOException
        Parses the metadata of an image file. This metadata depends on the format of the image.

        JPEG/JFIF files may contain EXIF and/or IPTC metadata. PNG files may contain comments. TIFF files may contain metadata.

        The instance of IImageMetadata returned by getMetadata() should be upcast (depending on image format).

        Not to be confused with "image info."

        Parameters:
        file - File containing image data.
        Returns:
        An instance of IImageMetadata.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageMetadata
      • getMetadata

        public static org.apache.commons.imaging.common.ImageMetadata getMetadata​(java.io.File file,
                                                                                  java.util.Map<java.lang.String,​java.lang.Object> params)
                                                                           throws ImageReadException,
                                                                                  java.io.IOException
        Parses the metadata of an image file. This metadata depends on the format of the image.

        JPEG/JFIF files may contain EXIF and/or IPTC metadata. PNG files may contain comments. TIFF files may contain metadata.

        The instance of IImageMetadata returned by getMetadata() should be upcast (depending on image format).

        Not to be confused with "image info."

        Parameters:
        file - File containing image data.
        params - Map of optional parameters, defined in ImagingConstants.
        Returns:
        An instance of IImageMetadata.
        Throws:
        ImageReadException
        java.io.IOException
        See Also:
        ImageMetadata
      • dumpImageFile

        public static java.lang.String dumpImageFile​(byte[] bytes)
                                              throws ImageReadException,
                                                     java.io.IOException
        Write the ImageInfo and format-specific information for the image content of the specified byte array to a string.
        Parameters:
        bytes - A valid array of bytes.
        Returns:
        A valid string.
        Throws:
        ImageReadException - In the event that the the specified content does not conform to the format of the specific parser implementation.
        java.io.IOException - In the event of unsuccessful read or access operation.
      • dumpImageFile

        public static java.lang.String dumpImageFile​(java.io.File file)
                                              throws ImageReadException,
                                                     java.io.IOException
        Write the ImageInfo and format-specific information for the image content of the specified file to a string.
        Parameters:
        file - A valid file reference.
        Returns:
        A valid string.
        Throws:
        ImageReadException - In the event that the the specified content does not conform to the format of the specific parser implementation.
        java.io.IOException - In the event of unsuccessful read or access operation.
      • getFormatCompliance

        public static FormatCompliance getFormatCompliance​(byte[] bytes)
                                                    throws ImageReadException,
                                                           java.io.IOException
        Attempts to determine the image format of the specified data and evaluates its format compliance. This method returns a FormatCompliance object which includes information about the data's compliance to a specific format.
        Parameters:
        bytes - a valid array of bytes containing image data.
        Returns:
        if successful, a valid FormatCompliance object.
        Throws:
        ImageReadException - in the event of unreadable data.
        java.io.IOException - in the event of an unrecoverable I/O condition.
      • getFormatCompliance

        public static FormatCompliance getFormatCompliance​(java.io.File file)
                                                    throws ImageReadException,
                                                           java.io.IOException
        Attempts to determine the image format of the specified data and evaluates its format compliance. This method returns a FormatCompliance object which includes information about the data's compliance to a specific format.
        Parameters:
        file - valid file containing image data
        Returns:
        if successful, a valid FormatCompliance object.
        Throws:
        ImageReadException - in the event of unreadable data.
        java.io.IOException - in the event of an unrecoverable I/O condition.
      • getAllBufferedImages

        public static java.util.List<java.awt.image.BufferedImage> getAllBufferedImages​(java.io.InputStream is,
                                                                                        java.lang.String filename)
                                                                                 throws ImageReadException,
                                                                                        java.io.IOException
        Gets all images specified by the InputStream (some formats may include multiple images within a single data source).
        Parameters:
        is - A valid InputStream
        Returns:
        A valid (potentially empty) list of BufferedImage objects.
        Throws:
        ImageReadException - In the event that the the specified content does not conform to the format of the specific parser implementation.
        java.io.IOException - In the event of unsuccessful read or access operation.
      • getAllBufferedImages

        public static java.util.List<java.awt.image.BufferedImage> getAllBufferedImages​(byte[] bytes)
                                                                                 throws ImageReadException,
                                                                                        java.io.IOException
        Gets all images specified by the byte array (some formats may include multiple images within a single data source).
        Parameters:
        bytes - a valid array of bytes
        Returns:
        A valid (potentially empty) list of BufferedImage objects.
        Throws:
        ImageReadException - In the event that the the specified content does not conform to the format of the specific parser implementation.
        java.io.IOException - In the event of unsuccessful read or access operation.
      • getAllBufferedImages

        public static java.util.List<java.awt.image.BufferedImage> getAllBufferedImages​(java.io.File file)
                                                                                 throws ImageReadException,
                                                                                        java.io.IOException
        Gets all images specified by the file (some formats may include multiple images within a single data source).
        Parameters:
        file - A reference to a valid data file.
        Returns:
        A valid (potentially empty) list of BufferedImage objects.
        Throws:
        ImageReadException - In the event that the the specified content does not conform to the format of the specific parser implementation.
        java.io.IOException - In the event of unsuccessful read or access operation.
      • getBufferedImage

        public static java.awt.image.BufferedImage getBufferedImage​(java.io.InputStream is)
                                                             throws ImageReadException,
                                                                    java.io.IOException
        Reads the first image from an InputStream.

        For the most recent information on support for specific formats, refer to Format Support at the main project development web site. While the Apache Commons Imaging package does not fully support all formats, it can read image info, metadata and ICC profiles from all image formats that provide this data.

        Parameters:
        is - a valid ImageStream from which to read data.
        Returns:
        if successful, a valid buffered image
        Throws:
        ImageReadException - in the event of a processing error while reading an image (i.e. a format violation, etc.).
        java.io.IOException - in the event of an unrecoverable I/O exception.
      • getBufferedImage

        public static java.awt.image.BufferedImage getBufferedImage​(java.io.InputStream is,
                                                                    java.util.Map<java.lang.String,​java.lang.Object> params)
                                                             throws ImageReadException,
                                                                    java.io.IOException
        Reads the first image from an InputStream using data-processing options specified through a parameters map. Options may be configured using the ImagingContants interface or the various format-specific implementations provided by this package.

        For the most recent information on support for specific formats, refer to Format Support at the main project development web site. While the Apache Commons Imaging package does not fully support all formats, it can read image info, metadata and ICC profiles from all image formats that provide this data.

        Parameters:
        is - a valid ImageStream from which to read data.
        params - an optional parameters map specifying options
        Returns:
        if successful, a valid buffered image
        Throws:
        ImageReadException - in the event of a processing error while reading an image (i.e. a format violation, etc.).
        java.io.IOException - in the event of an unrecoverable I/O exception.
      • getBufferedImage

        public static java.awt.image.BufferedImage getBufferedImage​(byte[] bytes)
                                                             throws ImageReadException,
                                                                    java.io.IOException
        Reads the first image from a byte array.

        For the most recent information on support for specific formats, refer to Format Support at the main project development web site. While the Apache Commons Imaging package does not fully support all formats, it can read image info, metadata and ICC profiles from all image formats that provide this data.

        Parameters:
        bytes - a valid array of bytes from which to read data.
        Returns:
        if successful, a valid buffered image
        Throws:
        ImageReadException - in the event of a processing error while reading an image (i.e. a format violation, etc.).
        java.io.IOException - in the event of an unrecoverable I/O exception.
      • getBufferedImage

        public static java.awt.image.BufferedImage getBufferedImage​(byte[] bytes,
                                                                    java.util.Map<java.lang.String,​java.lang.Object> params)
                                                             throws ImageReadException,
                                                                    java.io.IOException
        Reads the first image from a byte array using data-processing options specified through a parameters map. Options may be configured using the ImagingContants interface or the various format-specific implementations provided by this package.

        For the most recent information on support for specific formats, refer to Format Support at the main project development web site. While the Apache Commons Imaging package does not fully support all formats, it can read image info, metadata and ICC profiles from all image formats that provide this data.

        Parameters:
        bytes - a valid array of bytes from which to read data.
        params - an optional parameters map specifying options.
        Returns:
        if successful, a valid buffered image
        Throws:
        ImageReadException - in the event of a processing error while reading an image (i.e. a format violation, etc.).
        java.io.IOException - in the event of an unrecoverable I/O exception.
      • getBufferedImage

        public static java.awt.image.BufferedImage getBufferedImage​(java.io.File file)
                                                             throws ImageReadException,
                                                                    java.io.IOException
        Reads the first image from a file.

        For the most recent information on support for specific formats, refer to Format Support at the main project development web site. While the Apache Commons Imaging package does not fully support all formats, it can read image info, metadata and ICC profiles from all image formats that provide this data.

        Parameters:
        file - a valid reference to a file containing image data.
        Returns:
        if successful, a valid buffered image
        Throws:
        ImageReadException - in the event of a processing error while reading an image (i.e. a format violation, etc.).
        java.io.IOException - in the event of an unrecoverable I/O exception.
      • getBufferedImage

        public static java.awt.image.BufferedImage getBufferedImage​(java.io.File file,
                                                                    java.util.Map<java.lang.String,​java.lang.Object> params)
                                                             throws ImageReadException,
                                                                    java.io.IOException
        Reads the first image from a file using data-processing options specified through a parameters map. Options may be configured using the ImagingContants interface or the various format-specific implementations provided by this package.

        For the most recent information on support for specific formats, refer to Format Support at the main project development web site. While the Apache Commons Imaging package does not fully support all formats, it can read image info, metadata and ICC profiles from all image formats that provide this data.

        Parameters:
        file - a valid reference to a file containing image data.
        Returns:
        if successful, a valid buffered image
        Throws:
        ImageReadException - in the event of a processing error while reading an image (i.e. a format violation, etc.).
        java.io.IOException - in the event of an unrecoverable I/O exception.
      • writeImage

        public static void writeImage​(java.awt.image.BufferedImage src,
                                      java.io.File file,
                                      ImageFormat format,
                                      java.util.Map<java.lang.String,​java.lang.Object> params)
                               throws ImageWriteException,
                                      java.io.IOException
        Writes the content of a BufferedImage to a file using the specified image format. Specifications for storing the file (such as data compression, color models, metadata tags, etc.) may be specified using an optional parameters map. These specifications are defined in the ImagingConstants interface or in various format-specific implementations.

        Image writing is not supported for all graphics formats. For the most recent information on support for specific formats, refer to Format Support at the main project development web site. While the Apache Commons Imaging package does not fully support all formats, it can read image info, metadata and ICC profiles from all image formats that provide this data.

        Parameters:
        src - a valid BufferedImage object
        file - the file to which the output image is to be written
        format - the format in which the output image is to be written
        params - an optional parameters map (nulls permitted)
        Throws:
        ImageWriteException - in the event of a format violation, unsupported image format, etc.
        java.io.IOException - in the event of an unrecoverable I/O exception.
        See Also:
        ImagingConstants
      • writeImageToBytes

        public static byte[] writeImageToBytes​(java.awt.image.BufferedImage src,
                                               ImageFormat format,
                                               java.util.Map<java.lang.String,​java.lang.Object> params)
                                        throws ImageWriteException,
                                               java.io.IOException
        Writes the content of a BufferedImage to a byte array using the specified image format. Specifications for storing the file (such as data compression, color models, metadata tags, etc.) may be specified using an optional parameters map. These specifications are defined in the ImagingConstants interface or in various format-specific implementations.

        Image writing is not supported for all graphics formats. For the most recent information on support for specific formats, refer to Format Support at the main project development web site. While the Apache Commons Imaging package does not fully support all formats, it can read image info, metadata and ICC profiles from all image formats that provide this data.

        Parameters:
        src - a valid BufferedImage object
        format - the format in which the output image is to be written
        params - an optional parameters map (nulls permitted)
        Returns:
        if successful, a valid array of bytes.
        Throws:
        ImageWriteException - in the event of a format violation, unsupported image format, etc.
        java.io.IOException - in the event of an unrecoverable I/O exception.
        See Also:
        ImagingConstants
      • writeImage

        public static void writeImage​(java.awt.image.BufferedImage src,
                                      java.io.OutputStream os,
                                      ImageFormat format,
                                      java.util.Map<java.lang.String,​java.lang.Object> params)
                               throws ImageWriteException,
                                      java.io.IOException
        Writes the content of a BufferedImage to an OutputStream using the specified image format. Specifications for storing the file (such as data compression, color models, metadata tags, etc.) may be specified using an optional parameters map. These specifications are defined in the ImagingConstants interface or in various format-specific implementations.

        Image writing is not supported for all graphics formats. For the most recent information on support for specific formats, refer to Format Support at the main project development web site. While the Apache Commons Imaging package does not fully support all formats, it can read image info, metadata and ICC profiles from all image formats that provide this data.

        Parameters:
        src - a valid BufferedImage object
        os - the OutputStream to which the output image is to be written
        format - the format in which the output image is to be written
        params - an optional parameters map (nulls permitted)
        Throws:
        ImageWriteException - in the event of a format violation, unsupported image format, etc.
        java.io.IOException - in the event of an unrecoverable I/O exception.
        See Also:
        ImagingConstants