Dear interest list subscribers,
At long last the FCS versions of Java Advanced Imaging 1.1.2 and
JAI-Image I/O Tools 1.0 have been released. They are available via
the "Current Releases" link on the JAI home page
http://java.sun.com/products/java-media/jai/index.html
The improvements made to these products since the release of their
respective Release Candidate (RC) versions are listed in the README
file included within the library download bundles of each product. For
your convenience the salient excerpts from these files are also
included in this message.
I would also like to point out the new "JAI Utilities" page and the
link thereto which appears on the JAI home page. The JAI Utilities page
collects pointers to various third party pages via which access may be
gained to products, software, and information of potential interest to
JAI users.
Thank you for your continued interest in Sun Microsystems, Inc., Java,
and in particular Java Advanced Imaging and the JAI-Image I/O Tools
package set.
Regards,
Brian
--- Improvements in Java Advanced Imaging 1.1.2-FCS ---
Changes From JAI 1.1.2-RC to JAI 1.1.2
The changes made to JAI between the release of version 1.1.2-RC and 1.1.2
are all bug fixes or minor enhancements. Most of these changes were made in
response to customer feedback primarily on the jai-interest mailing list.
Bugs Fixed in JAI 1.1.2
* JPEG encoder throws ClassCastException.
This was observed to occur when attempting to write a RenderedOp to a
file.
* TIFF decoder sets wrong transparency type for RGBA image.
When the ExtraSamples field indicated unassociated alpha (not
premultiplied) the decoder incorrectly set the Transparency to BITMASK
instead of to TRANSLUCENT.
* TIFF decoder throws ArrayIndexOutOfBoundsException for some CCITT T.6
images.
* WBMP decoder does not properly handle images above 512 bytes.
* BMP encoder does not correctly handle the BI_BITFIELDS compression
type.
Corrected code to handle 555 configuration for 16-bit data and 888
configuration for 32-bit data.
* Repeated evaluation of JAI operation chain provokes exception.
The problem was due to lack of appropriate thread synchronization in
PlanarImage.getSinks().
* The server thread in SerializableRenderedImage is non-daemon.
The thread in question was changed to a daemon thread.
* Performance degradation compared to JAI versions 1.1.1 and 1.1.1_01
when processing floating point data and using J2SE 1.3*.
This problem was found to be due to a lack of optimization in the
implementation added to solve the problem described in the above
section Real-valued DataBuffer Portability.
* "Mosaic" operation should always use bounds provided in ImageLayout
hint.
If bounds (minX, minY, width, height) are provided via an ImageLayout
in a RenderingHints object passed to the operation, then these should
be used even if they do not intersect the union of the bounds of all
sources of the operation.
* "Mosaic" operation native implementation crashes VM when using
MosaicDescriptor.MOSAIC_TYPE_BLEND on Solaris.
* RuntimeException: "Connection reset by peer: JVM_recv in socket input"
observed when using remote imaging.
This problem was determined to be a socket communication timing issue
in SerializableRenderedImage when socket connections are used to
transfer image data: the client was closing its socket connection
before the server finished reading the close message.
* The values of KernelJAI.GRADIENT_MASK_SOBEL_HORIZONTAL and
KernelJAI.GRADIENT_MASK_SOBEL_VERTICAL were interchanged.
* "Subsampleaverage" operation pure java implementation crops image
leaving a black area at the right.
Enhancements Added in JAI 1.1.2
* PNG codec should support ICC profiles and better handle color metadata.
Several modifications were made to classes in the package
com.sun.media.jai.codec:
o ImageCodec
Added version of createComponentColorModel() which accepts a
ColorSpace parameter for the ColorModel to be created.
o PNGDecodeParam
Changed default behavior not to perform gamma correction, i.e.,
the default of the value returned by getPerformGammaCorrection()
is false.
o PNGEncodeParam
Added methods getICCProfileName() and setICCProfileName().
--- Improvements in JAI-Image I/O Tools 1.0-FCS ---
Changes from 1.0-rc to 1.0
This section describes changes which have been to JAI Image I/O Tools
since the release of version 1.0-rc.
Enhancements
Generic
* Changed the BMP, JPEG 2000, and PNM plug-ins to use the node value
in the metadata tree as well as the user object. Formerly only the
user object had been used.
* Modified README (this file) to mention correct handling of
mediaLib jar file in the JRE installation section.
* Enhanced writer plug-in verification that the image passed to
|write()| can actually be written so as to avoid subsequent
unexpected exceptions.
BMP
* Added a constructor which accepts a |Locale| parameter.
* Fixed bug in writer plug-in which caused an
|IndexOutOfBoundException| when writing |BufferedImage|s of type
|TYPE_3BYTE_BGR|.
* Fixed bug in reader plug-in which caused an |ArithmeticException|
when reading a BMP image with a zero-length palette.
* Fixed bug in reader plug-in which caused an
|ArrayIndexOutOfBoundsException| when reading the image g04rle.bmp
in the BMP test suite.
* Fixed problem in reader plug-in which caused a
|NullPointerException| when retrieving standard image metadata
"javax_imageio_1.0".
* Fixed bug in writer plug-in which caused an incorrect output to be
produced when source subsampling was requested via an
|ImageWriteParam|.
* Added support for writing images using the BI_PNG and BI_JPEG
compression types.
* Fixed problems encountered writing images using the BI_BITFIELDS
compression type. Supported image data for this compression type
now includes 555 for 16-bit data and 888 for 32-bit data.
JPEG
* Modified the JPEG reader plug-in service provider interface to
return |false| from its |canDecodeInput()| method for progressive
JPEG images. /If the JPEG reader is not obtained on the basis of
the supplied input source it will throw an exception if supplied
with a progressive JPEG image./
* Fixed customer-reported problems with the lossless JPEG
implementation for 8-bit images.
* Fixed bugs encountered reading lossless JPEG images with bit
depths 12 or greater.
* Fixed bugs encountered reading JPEG-LS images with bit depths 12
or greater.
* Further clarified bit depths supported in package overview javadoc.
* Enhanced reader and writer plug-ins to retrieve and set the bit
depth and in particular to set the |ColorModel| component sizes on
reading to the correct value(s).
JPEG 2000
* Separated the native and Java implementations of both the reader
and writer plug-ins into separate plug-ins for both reading and
writing, i.e., there are now four plug-ins with a native reader
and writer and a Java reader and writer.
* Fixed reader plug-in problem which caused |StackException|s when
reading constant-valued images.
* Fixed reader plug-in so as not to throw a |NullPointerException|
when ChannelDefinitionBox is not defined in the code stream.
* To the native implementation added code stream-only writing
capability.
* Fixed problem in the native implementation which caused different
progression type settings to produce identical files.
PNM
* Fixed problem in reader plug-in which caused an
|IllegalStateException| when retrieving standard image metadata
"javax_imageio_1.0".
Raw
* Enhanced reader plug-in to better handle data sources which do not
have an intrinsic or "natural" color space representation. The
constructor which accepts a |SampleModel| in lieu of an
|ImageTypeSpecifier| was added for this purpose.
TIFF
* Fixed some problems with the pluggable compression architecture
which were reported with respect to a pluggable LZW compressor.
These changes were made to |TIFFCompressor|:
o Added fields |compressionTagValue|, |compressionType|, and
|isCompressionLossless|.
o Added accessor methods for the new fields.
o Added a constructor which allows setting the values of the
new fields.
|TIFFImageWriteParam| was modified such that its
|setTIFFCompressor()| method affects which compression types are
available. Please refer to the documentation of that method for
details on using a pluggable compressor.
The foregoing changes allow a compressor to be plugged in either
to support unknown compression types or to override the compressor
supplied for known compression types.
* Added |GeoTIFFTagSet| for GeoTIFF tags and included this in the
sets used to initialize |TIFFImageReadParam|.
* Added erroneously omitted support in reader plug-in for |DEFLATE|
compression type.
* Fixed reader plug-in problems encountered in reading signed short
integer (16-bit) images.
* Fixed reader plug-in bugs encountered reading 32-bit integer and
floating point images.
* Fixed native CCITT decoder problems with CCITT T.4 2D-mode and
EOL-padding options.
* Fixed error which prevented emission of standard image metadata
"javax_imageio_1.0".
* Modified reader plug-in to throw an |IIOException| instead of
other exceptions such as |RuntimeException| and
|NullPointerException| which were observed for some TIFF test images.
* Fixed bugs which prevented LSB-to-MSB fill order (FillOrder tag
value 2) from being written correctly.
* Significantly improved performance of both reading and writing.
* Added support for reading old-style JPEG compressed data for the
baseline sequential process.
* Corrected JPEG compressed output to set tile sizes to 8*MCU as
specified in TIFF Technical Note #2.
* Corrected missing and erroneous tags and associated values in
|BaselineTIFFTagSet| and |FaxTIFFTagSet|.
* Added |getTagNumbers()| and |getTagNames()| to |TIFFTagSet|.
* Added ability to set |DEFLATE| and JPEG compression levels using
|setCompressionQuality()|. The |DEFLATE| level is
|8*getCompressionQuality()+1|. The JPEG quality is
|100*getCompressionQuality()|.
* Fixed bug which caused an |ArrayIndexOutOfBoundsException| to be
thrown by the Java implementation of the T.6 decompressor for
certain images.
* Added code to handle horizontal differencing predictors in LZW
decompression.
* Improved javadoc and package documentation for TIFF.
WBMP
* Fixed bug which caused cropped images (generated by the Java^TM
Advanced Imaging "Crop" operation) to be written incorrectly.
Copyright 2002 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 2002 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.
==========================================================================To
unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".