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.StringJPEG_METADATA_NODEprotected static org.apache.commons.logging.Loglogloggerprivate static java.lang.StringPNG_METADATA_NODEprivate static java.util.SetPROVIDERS_IGNORING_ICCprivate ImageFlavortargetFlavor-
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 booleancheckProviderIgnoresICC(javax.imageio.spi.IIOServiceProvider provider)Checks if the provider ignores the ICC color profile.private java.awt.image.BufferedImagegetFallbackBufferedImage(javax.imageio.ImageReader reader, int pageIndex, javax.imageio.ImageReadParam param)private javax.imageio.ImageReadParamgetParam(javax.imageio.ImageReader reader, java.util.Map hints)ImageFlavorgetTargetFlavor()Returns the image flavor that is returned by this ImageLoader implementation.ImageloadImage(ImageInfo info, java.util.Map hints, ImageSessionContext session)Loads and returns an image.private java.awt.color.ICC_ProfiletryToExctractICCProfile(javax.imageio.metadata.IIOMetadata iiometa)Extract ICC Profile from ImageIO Metadata.private java.awt.color.ICC_ProfiletryToExctractICCProfileFromJPEGMetadataNode(org.w3c.dom.Element jpgNode)private java.awt.color.ICC_ProfiletryToExctractICCProfileFromPNGMetadataNode(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
-
-