After quite a while away from it, I recently came back to dealing with graphics I/O in Java.
At one level, things have gotten much easier in the time I was away – in particular, the
ImageIO library is now part of the standard JRE. This means that, for the most part, you can count on being able to read and write a variety of different file formats without looking for add-on packages.
Unfortunately, one of the projects that Sun started, but which Oracle appears to have abandoned, is the Java Advanced Imaging (JAI) project. This was a collection of heavier-duty graphics routines that provide more features than are built into the standard JRE. JAI got transitioned over to java.net, where it was community supported.
This is a perfectly fine and good thing. However, the JAI project went rather dormant. Worse, at some time a while back, the folks at Java.net decided to completely re-do their website organization. In the course of doing that, they orphaned lots and LOTS of links to JAI. Still worse, even many of the internal links within Java.net point to the wrong locations. If you’re looking for jai.dev.java.net or jai-imageio.dev.java.net, you won’t find them.
If you sleuth around Java.net, you can still find JAI, but all you’ll find is the source – the website doesn’t even link to the binary downloads that exist. Under normal circumstances this might be tolerable, but one of the quirks of JAI is that it contains a fair amount of native code, and rebuilding all of THAT would be a real pain.
Fortunately, it’s still “out there” – it’s just hard to find. So here are some useful links:
- The new home of the main Java Advanced Imaging (JAI) code is https://home.java.net/project/java-advanced-imaging. This is a “holder” project, which contains:
- The Java Advanced Imaging API Core: https://java.net/projects/jai-core
- Demonstration programs for Java Advanced Imaging: https://java.net/projects/jai-demos
- Java Advanced Imaging Web Start binaries: https://java.net/projects/jai-webstart
- Java Advanced Imaging (JAI) API examples and tutorial.: https://java.net/projects/jaistuff
- The binaries for JAI are rather “orphaned”, but can be found at http://download.java.net/media/jai/builds/release/. The last published release is at http://download.java.net/media/jai/builds/release/1_1_3/
- The new home of the JAI ImageIO code is https://java.net/projects/jai-imageio. This is a “holder” project, which contains:
- The binaries for the JAI ImageIO are somewhat “orphaned,” but can still be downloaded from http://download.java.net/media/jai-imageio/builds/release/. The last released version is at http://download.java.net/media/jai-imageio/builds/release/1.1/
The JAI Image I/O Tools API Core project is particularly useful (at least to me) because it contains the plug-ins that allow
ImageIO to read and write additional file formats, most particularly the TIFF format. (Why that isn’t in the JRE I’ll never know.)