Class ImageLoaderImageIO

  • All Implemented Interfaces:
    ImageLoader

    public class ImageLoaderImageIO
    extends AbstractImageLoader
    An ImageLoader implementation based on ImageIO for loading bitmap images.
    • Field Detail

      • log

        protected static final org.apache.commons.logging.Log log
        logger
      • PNG_METADATA_NODE

        private static final java.lang.String PNG_METADATA_NODE
        See Also:
        Constant Field Values
      • JPEG_METADATA_NODE

        private static final java.lang.String JPEG_METADATA_NODE
        See Also:
        Constant Field Values
      • PROVIDERS_IGNORING_ICC

        private static final java.util.Set PROVIDERS_IGNORING_ICC
    • Constructor Detail

      • ImageLoaderImageIO

        public ImageLoaderImageIO​(ImageFlavor targetFlavor)
        Main constructor.
        Parameters:
        targetFlavor - the target flavor
    • Method Detail

      • getTargetFlavor

        public ImageFlavor getTargetFlavor()
        Returns the image flavor that is returned by this ImageLoader implementation.
        Returns:
        the target image flavor
      • loadImage

        public Image loadImage​(ImageInfo info,
                               java.util.Map hints,
                               ImageSessionContext session)
                        throws ImageException,
                               java.io.IOException
        Loads and returns an image.
        Parameters:
        info - the image info object indicating the image
        hints - a Map of hints that can be used by implementations to customize the loading process (may be null).
        session - the session context
        Returns:
        the fully loaded image
        Throws:
        ImageException - if an error occurs while loading the image
        java.io.IOException - if an I/O error occurs while loading the image
      • getParam

        private javax.imageio.ImageReadParam getParam​(javax.imageio.ImageReader reader,
                                                      java.util.Map hints)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • checkProviderIgnoresICC

        private boolean checkProviderIgnoresICC​(javax.imageio.spi.IIOServiceProvider provider)
        Checks if the provider ignores the ICC color profile. This method will assume providers work correctly, and return false if the provider is unknown. This ensures backward-compatibility.
        Parameters:
        provider - the ImageIO Provider
        Returns:
        true if we know the provider to be broken and ignore ICC profiles.
      • tryToExctractICCProfile

        private java.awt.color.ICC_Profile tryToExctractICCProfile​(javax.imageio.metadata.IIOMetadata iiometa)
        Extract ICC Profile from ImageIO Metadata. This method currently only supports PNG and JPEG metadata.
        Parameters:
        iiometa - The ImageIO Metadata
        Returns:
        an ICC Profile or null.
      • tryToExctractICCProfileFromPNGMetadataNode

        private java.awt.color.ICC_Profile tryToExctractICCProfileFromPNGMetadataNode​(org.w3c.dom.Element pngNode)
      • tryToExctractICCProfileFromJPEGMetadataNode

        private java.awt.color.ICC_Profile tryToExctractICCProfileFromJPEGMetadataNode​(org.w3c.dom.Element jpgNode)
      • getFallbackBufferedImage

        private java.awt.image.BufferedImage getFallbackBufferedImage​(javax.imageio.ImageReader reader,
                                                                      int pageIndex,
                                                                      javax.imageio.ImageReadParam param)
                                                               throws java.io.IOException
        Throws:
        java.io.IOException