Skip to content
Harald Kuhr edited this page Nov 16, 2020 · 4 revisions

JPEG

  • Read support for the following JPEG "flavors":
    • All JFIF compliant JPEGs
    • All Exif compliant JPEGs
    • YCbCr JPEGs without JFIF segment (converted to RGB, using embedded ICC profile)
    • CMYK JPEGs (converted to RGB by default or as CMYK, using embedded ICC profile)
    • Adobe YCCK JPEGs (converted to RGB by default or as CMYK, using embedded ICC profile)
    • JPEGs containing ICC profiles with interpretation other than 'Perceptual' or class other than 'Display'
    • JPEGs containing ICC profiles that are incompatible with stream data, corrupted ICC profiles or corrupted ICC_PROFILE segments
    • JPEGs using non-standard color spaces, unsupported by Java 2D
    • JPEGs with APP14/Adobe segments with length other than 14 bytes
    • 8 bit JPEGs with 16 bit DQT segments
    • Issues warnings instead of throwing exceptions in cases of corrupted or non-conformant data where ever the image data can still be read in a reasonable way
  • Thumbnail support:
    • JFIF thumbnails (even if stream contains "inconsistent metadata")
    • JFXX thumbnails (JPEG, Indexed and RGB)
    • EXIF thumbnails (JPEG, RGB and YCbCr)
  • Metadata support:
    • Native javax_imageio_jpeg_image_1.0 and Standard metadata formats
    • Non-conforming 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)
    • Supports reading metadata even if stream contains "inconsistent metadata"
  • Extended write support:
    • CMYK JPEGs
    • YCCK JPEGs