JavaTM Advanced Imaging Image I/O Tools 1.0_01 Release Notes

Changes from 1.0_01-rc to 1.0_01

Principal Improvements

This section lists the salient improvements of JAI Image I/O Tools. Complete lists of resolved and unresolved issues as tracked by the Bug Database are given in the subsequent subsection and section, respectively.

Generic

BMP

GIF

JPEG 2000

PNG

PNM

TIFF

WBMP

Issues Resolved

Bug IDSynopsis
4782751Image I/O Tools PNG plug-in should handle standard and native metadata
4854923TIFF plugin performance problem
5029711TIFF should support EXIF 2.2
5085722native JPEG codec does not decode an image correctly
5088722TIFF standard metadata /Data/SampleFormat incorrect if SampleFormat field is 1
5091498TIFF ImageTranscoder fails with exception if TextEntry missing keyword attribute
5094348TIFF reader incorrectly reads Deflate-compressed RGB TIFF images with horizontal prediction.
5096391Not possible to go backwards from "Choose Destination" dialog.
5101154Exception thrown when creating an ImageOutputStream from a WritableByteChannel
5103832PNG subsampling with JAI Image I/O Tools introduce an erroneous offset
5103917TIFF reader emits incorrect CompressionTypeName in standard image metadata
5103934GIF writer throws NullPointerException if no Global Color Table is initialized
5104015GIF writer incorrectly writes 1-bit images with MultiPixelPackedSampleModels.
5105880JPEG and PNG writer writes component image with incorrect colors
5106416BMP metadata should be writable and BMP writer should implement transcoding
5106422TIFF ImageWriter does not implement ImageTranscoder properly
5107844TIFF: Initialization of DateTime field from standard metadata is incorrect
5109705GIF: Standard metadata /Compression/NumProgressiveScans should set interlacing
5110279PNG Decoder: add accessor for interlace method
5110291TIFF: /Chroma/NumChannels <-> SamplesPerPixel incorrect for Palette images
5110298TIFF: Copyright field not handled in native <-> standard metadata conversion
5110389JPEG 2000: IIOInvalidTreeException when merging standard metadata w/Compression
5110397JPEG 2000: Resolution box values incorrectly set from standard /Dimension node
5110406JPEG 2000: Merge /javax_imageio_1.0/Document -> IndexOutOfBoundsException
5110403JPEG 2000: Merge /javax_imageio_1.0/Chroma/NumChannels -> NumberFormatException
6175953Horizontal Differencing Predictor should be supported for Deflate compression by TIFF writer
6175955Horizontal Differencing Predictor should be supported for LZW compression by TIFF writer
6177909TIFF reader plug-in readAsRenderedImage() fails for compressed non-monolithic YCbCr images
6178653TIFFTag.isIFDPointer() is underspecified and does not handle certain important cases
6181329JPEG Decoder crashes the VM on reading JPEG w/ premature end of data segment and missing EOI marker
6182034TIFF: Incorrect count in SampleFormat field when initialized from standard metadata and numBands > 1
6184933TIFF reader does not re-initialize certain fields when re-reading an image at a given index
6189018TIFF implementation of ImageTranscoder is incomplete for transcoding of TIFF native image metadata
6191010WBMP: Standard image metadata should contain more elements
6191013PNM plug-in does not emit native metadata, does not implement ImageTranscoder and fails comment read
6191604JPEG 2000 writer does not adequately implement ImageTranscoder
6191605Installers should no longer include mlibwrapper_jai.jar
6192454TIFF: Merging a native metadata tree completely overwrites the recipient tree
6192461TIFF: Native image metadata TIFFIFD "parent" attributes do not match the implementation
6196868RLE encoded BMP images are not read in correctly.
6197584JPEG 2000: Bits per sample is not correctly transcoded between standard and native image metadata
6197597JPEG 2000: Java reader plug-in cannot handle palette images with an RGBA palette
6197598JPEG 2000: Java Image I/O reader plug-in does not correctly read bilevel (1-bit) images
6197605JPEG 2000: Java reader plug-in progress reporting is incorrect
6197614JPEG 2000: codecLib reader cannot read palette images with alpha (RGBA palette)
6198066JPEG 2000: Palette node is never emitted in standard image metadata
6198355JPEG 2000: Native reader fails to read image if data accessor (getWidth(), etc.) is invoked first.
6198662JPEG 2000: Java reader plug-in ignores source region origin in ImageReadParam

Unresolved Issues

This section lists all issues (bugs and enhancements) tracked by the Bug Database which remain open as of this release.

Bug IDSynopsis
4779319PNG codec should support ICC profiles and better handle color metadata
4782745Image I/O Tools JPEG reader should emit standard metadata
4782879PNG plug-in should support 2- and 4-bit data
4799898RFE: Support for JBIG2 image format in JAI
4799903RFE:Decoding of JPEGs with more colorspaces, e.g., CMYK or externally-specified
4853035TIFF reader/writer do not use CCITT_RLE nor lsb-to-msb capabilities of codecLib
4980896JPEG 2000 plug-ins should implement setSourceRenderSize() capability
5019918Should evaluate current JPEG capabilities against customer requirements
5020883JAI-Image I/O I18N is incomplete
5024796TIFF writer should remove or warn about emitting inappropriate fields
5024818TIFF writer does not provide warning messages
5030551JBIG compression for Multipage Group 4 TIFF
5063709JAI-Image I/O reader-writer plug-ins pragmatically unusable in applet context
5076968vm crash when reading JPEG/JPEG-LS
5089981A lower resolution image decoded from a JPEG2000 image has incorrect image dimensions.
5094376Slow native JPEG reader in JAI-Image I/O Tools
5110300TIFF: Enhance some text field conversions from standard metadata
6175316JPEG2000 Reader should provide the number of resolution levels present in image.
6175702The Java and codecLib JPEG2000 ImageReader impls behave differently when resolution level is set
6175765Unable to decode low res image of huge JP2 file (100k*100k pixels)
6176583Support Horizontal Differencing Predictor when reading TIFF for samples with bit depths other than 8
6178642BaselineTIFFTagSet does not document non-baseline tag values it defines
6182053TIFF: EXIF TagSets should be defined to cause auto-reading of GPS and Intreoperability IFDs
6182058TIFF: SubIFDs and Indexed tags from TIFFPM6 technical notes 1 and 3 should be added
6183308Supply a 64-bit version on all appropriate platforms
6184285Support Horizontal Differencing Predictor when writing TIFF for samples with bit depths other than 8
6185463No TIFF TagSet is defined for the EXIF GPS or Interoperability attributes
6190292BMP native image metadata format definition does not match XML schema
6194442TIFF: ImageWriter shold implement capability to append an empty image to a sequence.
6197525ArrayIndexOutOfBoundsException is thrown when reading in a RLE encoded BMP image.
6198071JPEG 2000: "Length" attribute of JPEG2000PaletteBox incorrect for Java reader plug-in
6198200JPEG 2000: Readers throw exceptions in "ImageRead" op for images with non-zero canvas origin
6198356JPEG 2000: Writers should write images with non-zero origin (minX,minY) to canvas position (0,0).

Changes from 1.0_01-beta to 1.0_01-rc

Principal Improvements

This section lists the salient improvements of JAI Image I/O Tools. Complete lists of
resolved and unresolved issues as tracked by the Bug Database are given in the subsequent subsection and section, respectively.

Generic

The download bundles of the JAI Image I/O Tools binaries have been changed to match those of Java Advanced Imaging. Now instead of Zip or .tar.gz archives requiring manual management of individual files in the archives, each platform has four bundles available which may be used to install JAI Image I/O Tools into a JDK, JRE, an arbitrary location, or via auto-installation (signed jar).

GIF

A GIF writer plug-in has been implemented. Please refer to the overview page of the JAI Image I/O Tools API documentation for more information.

TIFF

Resolved Issues

This section lists all issues (bugs and enhancements) tracked by the Bug Database which have been resolved since JAI Image I/O Tools 1.0. Each Bug ID links to the Bug Database page for the corresponding issue.

Issues Fixed

Bug IDSynopsis
4929147TIFF reader plug-in does not correctly handle some old-style JPEG-in-TIFF
4956972ImageWrite and ImageRead operation need tile width equals to image width.
4971788Fixes of BMP & WBMP plug-ins made in J2SE 1.5 (Tiger) should be integrated
4978462TIFF reader plug-in cannot read compressed images with missing StripByteCounts
5008144Implement GIF writer plug-in
5009014Implement TIFF LZW compressor
5023763JAI-Image I/O installers should match those of JAI
5024789TIFF writer does not support source subsampling during pixel replacement
5073567Native method G3FAXDecode causes JVM to crash on win32
5080408CLibImageReader's JPEG-LS Decoder throws RasterFormatException
5080456RFC3745 states content type is "image/jp2" instead of "image/jpeg2000"
5080883BMP plug-in MIME types should include image/x-bmp and image/x-windows-bmp
5085088TIFF writer should always write XResolution and YResolution fields
5085091TIFF should emit more content in standard metadata
5085094Merging standard metadata into TIFF metadata is erroneous and incomplete
5085173JPEG 2000 Reader corruptes 16 bit signed image
5086341Conversion of TIFF native image metadata to standard metadata has several errors

Issues Closed

Bug IDSynopsis
5040091"ImageRead" is slower than "Stream"
5079654JPEG-LS compression-decompression scrambles RGB images

Changes from 1.0 to 1.0_01-beta

Principal Improvements

This section lists the salient improvements of JAI Image I/O Tools. Complete lists of
resolved and unresolved issues as tracked by the Bug Database are given in the subsequent subsection and section, respectively.

Generic

BMP

Top-down writing was fixed and the specification of BMPImageWriteParam was clarified as to how this interacts with compression.

JPEG

JPEG 2000

PNG

The precedence of the plug-ins is set to higher than the core J2SE plug-ins for PNG.

TIFF

Specification

Reader

Writer

WBMP

Resolved Issues

This section lists all issues (bugs and enhancements) tracked by the Bug Database which have been resolved since JAI Image I/O Tools 1.0. Each Bug ID links to the Bug Database page for the corresponding issue.

Issues Fixed

Bug IDSynopsis
4791673g3fax decoder throws native exception if code array smaller than image array
4791680g3fax and g4fax codecs do not handle lsb-to-msb fill order
4797101codecLib JPEG encoder dumps core for JPEG-LS (HPLOCO) mode on Linux
4824523"ImageRead" operation doc should be enhance vis-a-vis use of ImageReadParam
4825849JAI ImageWriter fails with native exception when encoding with setSourceBands
4848093WBMP ImageReader does not emit standard image metadata "javax_imageio_1.0"
4863972"ImageWrite" does not write data cached by [Image]OutputStream
4878587ClassCastException in raw reader for unshort type
4878665Native exception encountered while decoding lossless JPEG images
4882521Subsampling does not work correctly in native PNG plugin
4893017Image from TIFF reader in written TIFF collection is incorrect
4893021TIFF writer throws exception for palette-color images which have alpha
4896821"ImageRead" operation should verify that the reader can handle the inp
4909108TIFFImageWriter should throw a meaningful exception if the ColorModel is null
4919763J2KMetadata throws exception when convert standard metadata to native
4919771BMP, PNM writers and JP2 plugins assume ImageWriteParam class is format-specific
4920666Throws better exception when there is no proper plugin
4931730TIFF metadata initialization does not correctly handle data offsets > 32 bit
4936160JPEG reader plug-in should do a case-insensitive comparison on compression type
4938421J2KImageReaderSpi should support stream-only in canDecodeInput
4945746TIFF plug-in does not correctly handle little endian images
4953051J2KImageWriterCodecLib.write overwrites existing contents prior seek position
4953054J2KImageReader.read with SegmentedImageInputStream throws IOBE
4953061CLibJPEGImageReader.read JPEG-LS -> vm crash
4956972ImageWrite and ImageRead operation need tile width equals to image width.
4965373TIFF ImageReader plug-in modifies X/YResolution metadata after read.
4965957"ImageRead" fails properly to re-tile TIFF images on the fly
4966663JPEG 2000 reader and writer plug-ins have random precedence order
4971788Fixes of BMP & WBMP plug-ins made in J2SE 1.5 (Tiger) should be integrated
4978317TIFF reader should be robust to format errors in the DateTime field
4981604native code exception with TIFF ImageIO plugin
4985010TIFF reader should handle defective old-style JPEG-in-TIFF data from Kofax
4986294Verify "top down" capability of BMP ImageWriter
4986557TIFF DTD should state that TIFFField contains sequences except for TIFFUndefined
4987820ImageReader throws ArrayIndexOutOfBoundsException reading subimage from GEOTIFF
4988186Subsampling does not work correctly in native-based JPEG 2000 reader plug-in
4990634TIFF reader fails to read CMYK image
4992466Native JPEG image writer dies with SIGFPE if compression quality is set to zero
4994547Exceptions thrown by codecLib or mediaLib should be re-thrown as IIOExceptions
4996614JPEG 2000 ImageWriter.write() does not throw correct exceptions
5012075TIFF writer plug-in writes partial tiles at right and bottom boundaries
5012899TIFF reader should decode only required samples when random access is easy
5012985TIFF writer plug-in does not write fields to IFD in ascending order by tag
5014403isImageTiled() of J2K native-based reader plug-in always returns false
5019895TIFF reader throws ArrayIndexOutOfBounds of [S]RATIONALs with N>1 in metadata
5019981SPI versions should be set to something reasonable for all plug-ins
5020557codecLib-based JPEG 2000 SPIs do not self-deregister when codecLib unavailable
5020641Precedence of JPEG and PNG plug-in SPIs should be higher than core J2SE plug-ins
5020939TIFF writer does not subsample properly
5024774TIFF reader does not load values of unrecognized fields
5024783TIFF writer incorrectly handles TIFFImageWriteParam compressionMode setting
5024787TIFF writer should reset tile size to a multiple of 16 for non-JPEG compression
5024789TIFF writer does not support source subsampling during pixel replacement
5024807ImageWriteDescriptor javadoc should indicate when internal stream is flushed
5024812Implement a system property to disable codecLib
5024828Better document how TIFF writer uses and modifies supplied image metadata
5026992Tests contain hard-coded paths in /home
5026995LZW and PackBits are not decompressed before called TIFFDecompressor.decode()
5027013TIFF reader should optionally ignore (some) metadata
5028610TIFFPackBitsDecompressor throws ArrayIndexOutOfBoundsException
5028613TIFF Deflate decompressor throws ArrayIndexOutOfBoundsException
5029136Obsolete link to EXIF 2.1 specification in EXIFTIFFTagSet javadoc
5029140TIFF compression tag value for Deflate does not match Adobe specification
5029142TIFF writer may overwrite supplied metadata
5029146TIFF reader should document ignoreMetadata behavior
5029165JPEG reader should get dimensions and ImageTypeSpecifier without decoding image
5031828TIFF JPEG compressor should write JPEGTables field and abbreviated streams
5034004BMPWriter allows BITFIELDS compression to be used with non-16/32 bit images
5034013BMPWriter allows compression to be set for encoding with topDown images
5038604Raw ImageReader plug-in incorrectly reports progress to listener
5038706BMP and PNM ImageReaders throw EOFException on re-reading the same image region
5039538CLibJPEGImageReader shall seek to end of image data before return from read()
5039561PNMImageReader does not correctly read subregions of PNM image
5040039TIFF writer always writes offset of first IFD as 8 regardless of stream position

Issues Closed

Bug IDSynopsis
4825664ImageReader.getWidth() is very slow
4948064ImageRead operation fails with exception when attempting to re-tile source data
4989543TIFFImageReader: IndexOutOfBoundsException for RenderedImage.
5024799Add T4 option methods to TIFFImageWriteParam
5024815Supply JBIG2 plug-in
5027001TIFF EXIF tags supported by default but EXIFParentTIFFTagSet indicates otherwise
5038607Raw ImageReader enters infinite loop reading image
5038770Raw writer-reader combination cannot write-read at non-zero offset

Unresolved Issues

This section lists all issues (bugs and enhancements) tracked by the Bug Database which remain open as of this release.

Bug IDSynopsis
4779319PNG codec should support ICC profiles and better handle color metadata
4782745Image I/O Tools JPEG reader should emit standard metadata
4782751Image I/O Tools PNG plug-in should handle standard and native metadata
4782879PNG plug-in should support 2- and 4-bit data
4799898RFE: Support for JBIG2 image format in JAI
4799903RFE:Decoding of JPEGs with more colorspaces, e.g., CMYK or externally-specified
4853035TIFF reader/writer do not use CCITT_RLE nor lsb-to-msb capabilities of codecLib
4854923TIFF plugin performance problem
4929147TIFF reader plug-in does not correctly handle some old-style JPEG-in-TIFF
4978462TIFF reader plug-in cannot read compressed images with missing StripByteCounts
4980896JPEG 2000 plug-ins should implement setSourceRenderSize() capability
5008144Implement GIF writer plug-in
5009014Implement TIFF LZW compressor
5019918Should evaluate current JPEG capabilities against customer requirements
5020883JAI-Image I/O I18N is incomplete
5023763JAI-Image I/O installers should match those of JAI
5024796TIFF writer should remove or warn about emitting inappropriate fields
5024818TIFF writer does not provide warning messages
5029711TIFF should support EXIF 2.2
5030551JBIG compression for Multipage Group 4 TIFF
5040091"ImageRead" is slower than "Stream"


Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Third-party software, including font technology, is copyrighted and licensed from Sun suppliers. Portions may be derived from Berkeley BSD systems, licensed from U. of CA. Sun, Sun Microsystems, the Sun logo, Java, and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Federal Acquisitions: Commercial Software - Government Users Subject to Standard License Terms and Conditions.

Copyright 2004 Sun Microsystems, Inc. Tous droits réservés. Distribué par des licences qui en restreignent l'utilisation. Le logiciel détenu par des tiers, et qui comprend la technologie relative aux polices de caractères, est protégé par un copyright et licencié par des fournisseurs de Sun. Des parties de ce produit pourront être dérivées des systèmes Berkeley BSD licenciés par l'Université de Californie. Sun, Sun Microsystems, le logo Sun, Java, et Solaris sont des marques de fabrique ou des marques déposées de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays.