JIU 0.14.0 review

Download
by rbytes.net on

JIU is a library which offers functionality to load, analyze, process and save pixel images

License: GPL (GNU General Public License)
File size: 1244K
Developer: Marco Schmidt
0 stars award from rbytes.net

JIU is a library which offers functionality to load, analyze, process and save pixel images. Various file formats are supported, demo applications for the command line and the AWT GUI toolkit are provided too.

Here are some key features of "JIU":
Image data types (net.sourceforge.jiu.data): interfaces for standard image types like
black and white / bilevel,
grayscale (8 and 16 bits),
RGB truecolor (24 and 48 bits) and paletted (also known as indexed or color-mapped) images.
Implementations of these image types that store data in memory.
Planned for the future: disk-based implementations of these interfaces for very large images, with intelligent caching.
Image codec classes (net.sourceforge.jiu.codecs): Load and save images. Includes the possibility to load or save only a rectangular part of an image. Supported file formats:
Portable Anymap (PBM / PGM / PPM),
Portable Network Graphics (PNG),
Graphics Interchange Format (GIF),
Sun Raster (RAS),
Kodak Image Pac / Photo CD (PCD),
Tagged Image File Format (TIFF),
Windows Bitmap (BMP),
Amiga Interchange File Format (IFF / LBM),
Palm image file format and
Adobe Photoshop (PSD).
There also is a helper class to load images via the AWT so that JPEG and GIF images can be loaded. However, you do not need AWT for JIU, so JIU can be used easily in a server environment.
Color adjustment (net.sourceforge.jiu.color.adjustment): modify brightness, contrast, hue, saturation, value, correct gamma. Perform histogram normalization and equalization.
Color analysis (net.sourceforge.jiu.color.analysis): Create one- and three-dimensional histograms, determine the number of used colors in an image, create co-occurrence matrices and co-occurrence frequency matrices. Determine texture properties and the mean difference between two images.
Color conversion (net.sourceforge.jiu.color.conversion): Convert from YCbCr (as used in PCD), CMYK and LogLuv color spaces to RGB.
Color I/O (net.sourceforge.jiu.color.io): Save all types of histograms and matrices to text files. Read and write palette files.
Color quantization (net.sourceforge.jiu.color.quantization): operations to reduce the number of used colors in color images. Supported are Median Cut quantization, octree quantization, uniform color quantization, popularity quantization and mapping to arbitrary (user-defined) palettes.
Dithering and halftoning (net.sourceforge.jiu.color.dithering): error diffusion dithering (Floyd-Steinberg and various others, user-defined error distribution templates are possible), ordered dithering and clustered-dot dithering (spot functions can be user-defined, in addition to the predefined ones).
Color reduction (net.sourceforge.jiu.color.reduction): all other color reduction methods that do not belong into either the dithering package or the quantization package. Auto-detect color type (for a given image, determine the smallest image data type that the image can fit into without loss of precision), reduce number of shades of gray, convert grayscale to bilevel images using a threshold value, convert RGB color images to grayscale.
Various color operations (net.sourceforge.jiu.color): everything that did not fit in one of the subpackages of color. Invert image, compose two images by applying arithmetic operations on two samples.
Color promotion (net.sourceforge.jiu.color.promotion): convert an image to a type that requires more memory (e.g. a grayscale image to an RGB truecolor image). Promotion is wasteful with resources, but certain operations require specific image types. Example: convolution kernel filtering (e.g. to blur, sharpen) requires grayscale or RGB truecolor. If you want to sharpen a paletted image, you have to promote it to truecolor first.
Geometry (net.sourceforge.jiu.geometry): Flip, mirror, rotate (in steps of 90 degrees), crop, shear and scale (various filter types for interpolation, including B-Spline, Lanczos(3), Mitchell and others).
Filters (net.sourceforge.jiu.filters): Convolution kernel filters (including predefined filters like blur, sharpen, edge detection etc., but user-defined filters are possible as well), also non-linear filters mean, median, minimum, maximum and oil.
A manual for developers. This is far from complete, and I've noticed that writing it before the 1.0 release doesn't make sense. Too much is still changing, so for the time being I'm concentrating on writing code and API documentation.
API documentation with usage examples.
Source code as HTML. These HTML pages were previously created by an external tool (Java2HTML). However, since Java 1.4 Sun's javadoc tool allows for the creation of HTMLized source code as well. It is not as nicely colored as the Java2HTML output, but there are links to it from all classes in the API documentation, which is very convenient to browse the project.
Requires Java 1.1 or higher

What's New in This Release:
Renamed the Windows batch files to have more self-explanatory names.
Changed create-jiu.jar.bat (formerly j.bat) to create a JAR which causes no problems with (my) JDK 1.5 installation
README: changed website URL to http://schmidt.devlib.org/jiu/
Released as 0.14.0 (note that some of the documents still say 0.13.0, this is just a maintenance release to deliver a correct version of jiu.jar)

JIU 0.14.0 keywords