JImageReader is a library that can read a few, relatively obscure, image formats in Java, into standard java.awt.Image objects. Its origins are around 2010 or 2011, when my goal was to read PCX images in Java, and I couldn't find a library that had support for that built in. I found writing the image parser to be an interesting problem, and gradually added more images. However, it's very much a hobby project, and a secondary side project; you are welcome to use it in your projects, or to submit a pull request to add support for more formats, but it is not one I frequently update.
Several formats are supported, and many of those have different variants, of which a subset tend to be supported. Support is inherently limited by sample images to verify that these variants can in fact be loaded properly, so particularly if a sub-format that you need it not supported, it may be due to lack of a sample image.
Some formats also support the ImageIO ImageReaderSPI interface. This results in the format being supported when you use ImageIO.read(File fileName) with the library as a dependency.
Supported formats include:
Microsoft Paint (MSP)
The Microsoft Paint format was used in Paint in Windows 1 and Windows 2, and there are two versions of the format. All known variants, including versions 1 and 2, are supported.
Sun Icon (ICO)
The Sun Icon format is an ASCII text image format that is supported on some old Sun workstations, and is not to be confused with modern Windows ICO images (which are not yet supported).
Version 1 of the format is supported, but only for monochrome icons (ed: and apparently some color icons), and only for images that don't include a description.. 8-bit color icons can be viewed, but no guarantee is made as to their color accuracy, as no reference system has been found. No subsequent versions of the format are known.
Several versions of the Bitmap (BMP) format are supported. This includes the most common variety - 24-bit RGB Windows 3 bitmaps - but also various other, less common formats.
By file format, supported:
The following bitmap formats and features are not supported yet:
By compression and bit depth:
The following compression/bit depth varieties are not supported:
In addition, if RLE or bitfield encoded images exist in bit depths other than those listed above, they are not supported.
There are a number of unit tests in the test/com/ajtjp/jImageReader folder that verify that the supported formats work, as well as some that are ignored for those formats that are not yet supported (and which will be enabled when they are supported).
Truevision TARGA (TGA)
TARGA version 1 images are largely supported; TARGA version 2 is not currently supported. TARGA 1 variants with support include:
These correspond to data types 2, 3, 10, and 11 in the official TGA spec. It is believed that color-mapped TGA 1 images will also work (types 1 and 9), but test images are currently lacking.
Tests for these variants exists in TGATest.java and UnsupportedTGATest.java.
Version 5 PCX files are generally supported, in 24-bit (Truecolor) depth, as well as 256-bit (color-mapped palette) depth.
The following variants are not supported: