jrawio is a Service Provider Implementation for the Java™ ImageIO API. It provides the ability to read images coded in a digital "camera raw" format (such as NEF for Nikon or CRW/CR2 for Canon). It is to be pointed out that jrawio is implemented in 100% pure Java™.
jrawio is an opensource product distributed under the Apache license.
What is a Camera RAW format anyway?
In simple words, a Camera RAW format is the dump of the data collected by the camera sensor, with basically no post-processing applied. While it has the pitfall of requiring heavy processing in order to achieve a displayable image, the basic advantage is that any transformatio applied to it is "reversible". From this point of view a Camera RAW format can be thought as a "digital negative". But don't confuse this with Adobe's Digital Negative format (.DNG), which is just the try to define a standard format of RAW images. Indeed every camera manufacturer (e.g. Nikon, Canon, ...) has its own format.
What does jrawio provide?
jrawio allows you to read the raster data, the thumbnails and to extract all the known metadata contained in the image. The current version (1.0) by default provides you the RAW data, that is the unprocessed data captured by the camera sensor. You will need to process them for achieving a displayable image. The RAWProcessor is an early access extension that, when added to jrawio, provides your application with images that are ready to be used.
Please see the "Status and roadmap" section for more information.
Supported formats and cameras
jrawio is presently a Release Candidate for v1.0, so it's coming out of beta stage. Please refer also to the Release Notes for information about issues.
It has been tested with about 8,000 photos taken with Nikon D100 and D70 cameras and with about 250 samples of various cameras downloaded from the web. jrawio has been explicitly tested with the following models:
Maker Format Model
Canon CR2 Digital Rebel, EOS 1D MkII, EOS 1Ds MkII, EOS 350D
Canon CRW D30, EOD 10D, EOS 300D
Leica DNG R8, R9
Minolta MRW DiMAGE 5, DiMAGE 7i, DiMAGE 7Hi
Nikon NEF CoolPix 5400, CoolPix 5700, CoolPix 8700, CoolPix 8800, D1, D100, D1X, D200, D2H, D2X, D50, D70, D70s
Pentax PEF *ist D, *ist DL, *ist DS
Sony SRF F828
If you are interested in using jrawio with some files from a supported format, but produced by an untested camera, please contact us and provide some samples. We will work to fix the problem as soon as possible.
Status and roadmap
jrawio is presently in Release Candidate stage and it's going out of beta stage. The main branch is going some further Release Candidates until it has been stabilized and tested enough. The current issues we're working on at this point are:
* Writing more tests suite to assure the product quality;
* Providing more internal documentation (which would also work as a reference for many proprietary, undocumented formats);
* Supporting more and more cameras and formats.
* Providing post-processing capabilities (the RAWProcessor, see below) to enable jrawio to deliver display-ready images.