When taking a stab at searching for good image libraries, I found some rather old threads, and came up with some contenders which seems to keep on living and having different strengths:
OpenIMAJ is an award-winning set of libraries and tools for multimedia content analysis and content generation. OpenIMAJ is very broad and contains everything from state-of-the-art computer vision (e.g. SIFT descriptors, salient region detection, face detection, etc.) and advanced data clustering, through to software that performs analysis on the content, layout and structure of webpages.
The library is available as a modular set of Jars and the source is freely available under a BSD-style license. If you use OpenIMAJ for academic work, we'd appreciate it if you reference us. To get started quickly with OpenIMAJ, we recommend you try the tutorial. For more information about installing the source code, integrating the jars with your java project or using the command line tools please consult the documentation menu above. The blog shows some cool examples of things we've been doing with OpenIMAJ and ImageTerrier.
Benefits, it has a licence which is usable also commercially, and it is written directly in java. However it seems like the documentation is somewhat messy, and I couldn't really find what image formats it supports or not. But you might have better luck finding your intended functions and requirements
About the image part of the library:
The javaxt.io.Image class is designed to simplify reading, writing, and manipulating image files. Here are a couple simple examples of how to open, rotate, crop, resize, and save image files. Please refer to the JavaDocs for a full list of methods.
On the license issue:
JavaXT is an open source project released under an MIT License. Feel free to use the code and information found here as you like. This software comes with no guarantees or warranties. You may use this software in any open source or commercial project.
This is maybe the most promising library, but it does handle quite a lot more than just image stuff. Not sure if you can just install the image part of it, or not.
Regarding the library it self:
FreeImage is an Open Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications. FreeImage is easy to use, fast, multithreading safe, compatible with all 32-bit or 64-bit versions of Windows, and cross-platform (works both with Linux and Mac OS X).
Thanks to it's ANSI C interface, FreeImage is usable in many languages including C, C++, VB, C#, Delphi, Java and also in common scripting languages such as Perl, Python, PHP, TCL or Ruby.
This is not a pure java library, and you need to interface it. However it does provide a lot of the features and file formats you are looking for. A partial interface, maybe dated, can be found in freeimage4j. If not updated, it should/could provide a base for your new interface.
From the image perspective it seems like FreeImage might be your best bet, but you might have difficulties interfacing it. OpenIMAJ might have what you need, but I couldn't find my way through the documentation. JavaXT.io.Image, does seem to have it, but you might a lot else as well.