Class ImageLoaderImageIO
- java.lang.Object
-
- org.apache.xmlgraphics.image.loader.impl.AbstractImageLoader
-
- org.apache.xmlgraphics.image.loader.impl.imageio.ImageLoaderImageIO
-
- All Implemented Interfaces:
ImageLoader
public class ImageLoaderImageIO extends AbstractImageLoader
An ImageLoader implementation based on ImageIO for loading bitmap images.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
JPEG_METADATA_NODE
protected static org.apache.commons.logging.Log
log
loggerprivate static java.lang.String
PNG_METADATA_NODE
private static java.util.Set
PROVIDERS_IGNORING_ICC
private ImageFlavor
targetFlavor
-
Fields inherited from interface org.apache.xmlgraphics.image.loader.spi.ImageLoader
MEDIUM_LOADING_PENALTY, NO_LOADING_PENALTY
-
-
Constructor Summary
Constructors Constructor Description ImageLoaderImageIO(ImageFlavor targetFlavor)
Main constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
checkProviderIgnoresICC(javax.imageio.spi.IIOServiceProvider provider)
Checks if the provider ignores the ICC color profile.private java.awt.image.BufferedImage
getFallbackBufferedImage(javax.imageio.ImageReader reader, int pageIndex, javax.imageio.ImageReadParam param)
private javax.imageio.ImageReadParam
getParam(javax.imageio.ImageReader reader, java.util.Map hints)
ImageFlavor
getTargetFlavor()
Returns the image flavor that is returned by this ImageLoader implementation.Image
loadImage(ImageInfo info, java.util.Map hints, ImageSessionContext session)
Loads and returns an image.private java.awt.color.ICC_Profile
tryToExctractICCProfile(javax.imageio.metadata.IIOMetadata iiometa)
Extract ICC Profile from ImageIO Metadata.private java.awt.color.ICC_Profile
tryToExctractICCProfileFromJPEGMetadataNode(org.w3c.dom.Element jpgNode)
private java.awt.color.ICC_Profile
tryToExctractICCProfileFromPNGMetadataNode(org.w3c.dom.Element pngNode)
-
Methods inherited from class org.apache.xmlgraphics.image.loader.impl.AbstractImageLoader
getUsagePenalty, ignoreColorProfile, loadImage
-
-
-
-
Field Detail
-
log
protected static final org.apache.commons.logging.Log log
logger
-
targetFlavor
private ImageFlavor targetFlavor
-
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 imagehints
- 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 imagejava.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
-
-