Image data types
(net.sourceforge.jiu.data):
interfaces for standard image types like
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.
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:
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.
net.sourceforge.jiu.color.adjustment):
modify brightness, contrast, hue, saturation, value, correct gamma.
Perform histogram normalization and equalization.
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.
net.sourceforge.jiu.color.conversion):
Convert from YCbCr (as used in PCD), CMYK and LogLuv color spaces to RGB.net.sourceforge.jiu.color.io):
Save all types of histograms and matrices to text files.
Read and write palette files.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.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).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.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.
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.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).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.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.jiuawt, shows JIU's features
(check out some jiuawt screenshots).
Under some platforms (like Win32), unpacking the non-core JIU distribution
as found in the download section and double-clicking on the file jiu.jar is enough to start the application.
Or enter java -jar jiu.jarat the command line to get the same result. With older versions of Java you'll have to give the JAR archive to the classpath:
java -cp jiu.jar net.sourceforge.jiu.apps.jiuawtTo provide more memory, start the program with the -mx switch:
java -mx128m -jar jiu.jarwould give jiuawt 128 MB. If I remember correctly, the default setting for the JVM is 64 MB, which can quickly become a problem. The JVM (and thus, jiuawt) cannot allocate more memory on demand, the amount is limited by the above switch (or the default value).