I've been working with the Apache Commons Imaging folks to make some updates to the API and the question has come up about making the library compatible with Android. I was wondering if this idea is practical or even desirable. Does anyone have experience with this issue? What do you recommend?
Commons Imaging is a pure Java language implementation of image-related operations. I use it because it offers support for the TIFF image format that was not formerly available except through the JAI add in.
As I understand it, the java.awt package is not supported under Android. That presents a challenge because Commons Imaging uses java.awt.BufferedImage extensively. It also uses Color and some of the more specialized color operations like ICC_Profiles. A few other AWT classes are used to a small degree such as GraphicsDevice, GraphicsEnvironment, etc.
There are many imaging libraries available for Android, but they make use of the Android imaging API rather than Java's AWT classes. So I'm afraid the idea of a cross-platform imaging library is pretty much a non-starter. You should be able to use a C/C++ imaging library like Skia via JNI on the desktop and via the NDK on Android, if native code is acceptable.
What imaging operations do you need on Android that are not available via Android's built-in classes?