I've started looking into the com.sun problem, i.e. the problem with the Sun-private JPEG codec that is not available in OpenJDK and other JVMs.
I've already removed the JPEG compression support from the TIFF codec fork in XGC. I'm tempted to do the same in Batik. The TIFFTranscoder can't generate TIFFs with JPEG compression anyway (apparently, there were NPEs). Removing this means that Batik won't be able to load TIFFs with JPEG compression anymore unless the user switches over to the ImageIO codec. However, a TIFF ImageIO codec is only available with the JAI ImageIO Tools in the classpath. I've also locally deleted the com.sun-based JPEG ImageWriter and enabled the ImageIO-based one. I've compared the generated JPEGs on a low level and they are basically identical (especially the pixel data). Next on the list is making sure the ImageIO-based JPEG support can fully replace the com.sun JPEG codec. When I have that, we basically are completely rid of of the com.sun classes with only the restriction indicated above. If anyone thinks that removing JPEG decoding support from the internal TIFF codec is unacceptable, please let me know. If necessary, I can try to make sure there is a fallback to ImageIO if the internal codec cannot load a particular TIFF. From my experience, the TIFF codec from JAI ImageIO Tools is superior to the internal one. So personally, I'd actually love to remove that one from Batik and XGC altogether. But I guess that's not very popular. An alternative to my approach above is to conditionally compile the com.sun-"tainted" classes but I'd rather put something together that works on all JVMs in a consistent way (or as consistent as possible). BTW, after the build improvements (in the new branch), the XGC dependency comes in. I plan to slowly synchronize and then phase out the Batik-duplicates. And I may be tempted to plug in the XGC image loading framework as additional image source so Batik can support MUCH more image formats. But first things first... Jeremias Maerki --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
