Class JPEGImageReader

java.lang.Object
javax.imageio.ImageReader
com.twelvemonkeys.imageio.ImageReaderBase
com.twelvemonkeys.imageio.plugins.jpeg.JPEGImageReader

public final class JPEGImageReader extends com.twelvemonkeys.imageio.ImageReaderBase
A JPEG ImageReader implementation based on the JRE JPEGImageReader, that adds support and properly handles cases where the JRE version throws exceptions.
Main features:
  • Support for YCbCr JPEGs without JFIF segment (converted to RGB, using the embedded ICC profile if applicable)
  • Support for CMYK JPEGs (converted to RGB by default or as CMYK, using the embedded ICC profile if applicable)
  • Support for Adobe YCCK JPEGs (converted to RGB by default or as CMYK, using the embedded ICC profile if applicable)
  • Support for JPEGs containing ICC profiles with interpretation other than 'Perceptual' (profile is assumed to be 'Perceptual' and used)
  • Support for JPEGs containing ICC profiles with class other than 'Display' (profile is assumed to have class 'Display' and used)
  • Support for JPEGs containing ICC profiles that are incompatible with stream data (image data is read, profile is ignored)
  • Support for JPEGs with corrupted ICC profiles (image data is read, profile is ignored)
  • Support for JPEGs with corrupted ICC_PROFILE segments (image data is read, profile is ignored)
  • Support for JPEGs using non-standard color spaces, unsupported by Java 2D (image data is read, profile is ignored)
  • Issues warnings instead of throwing exceptions in cases of corrupted data where ever the image data can still be read in a reasonable way
Thumbnail support:
  • Support for JFIF thumbnails (even if stream contains inconsistent metadata)
  • Support for JFXX thumbnails (JPEG, Indexed and RGB)
  • Support for EXIF thumbnails (JPEG, RGB and YCbCr)
Metadata support:
  • Support for JPEG metadata in both standard and native formats (even if stream contains inconsistent metadata)
  • Support for javax_imageio_jpeg_image_1.0 format (currently as native format, may change in the future)
  • Support for illegal combinations of JFIF, Exif and Adobe markers, using "unknown" segments in the "MarkerSequence" tag for the unsupported segments (for javax_imageio_jpeg_image_1.0 format)
Version:
$Id: JPEGImageReader.java,v 1.0 24.01.11 16.37 haraldk Exp$
Author:
Harald Kuhr, LUT-based YCbCR conversion by Werner Randelshofer, last modified by $Author: haraldk$