DCRAW For Delphi
Last Updated 06/29/2008

New since last update:
    Changed for 06/29/2008 version
    1. Added additional camera codecs
    2. Added ability to just get the RAW image <RGGB> data before any processing is done.
    3. Added a SATuration option which is the -S option in the DCRAW.C code

    Changed for 04/23/2008 version
    1. Added code to control AUTO ROTATE of RAW images. You now have 5 options
        Auto Rotate
        No Rotate
        90 Degree rotate
        180 Degree rotate
        270 Degree rotate

    Changed for 04/04/2008 version
    5. Added source code for MSDCRAW.C in case you feel the need ;)
    4. Added support for MEMORY thumbnails instead of thumbnails saved to file.
    3. Much more camera support
    2. A couple of new options (you can see the new checkboxs etc...)
    1. Improved CSTDIO.PAS file (mostly in MyProgress funtion)

======================================================================================

David Coffin: Please click here for your test files.

The DCRAW c++ files allow you to read RAW images from higher end digital cameras. If you don't know c++, then you are at a disadvantage to use them. That is why I've written a wrapper for Delphi that can make use of the DCRAW c++ code.

The first thing I had to do was to compile the DCRAW.C code along with additional c++ files I created in order to produce a viable DLL that could be used with Delphi. This compiled code is MSDCRAW.DLL. You need this DLL to be included with your application and keep the DLL in the same folder as your application program.

DCRAW c++ code was generously written by David Coffin and you can view his website by clicking here.

The purpose of the DCRAW functionality is so that programmers can have the ability to load RAW digital images. For example: The Canon G2, G3, G5 Digital EOS Rebel all have the ability to save photos in either RAW or JPG format. The JPG format is best for 95% of what you photograph. However, if you are taking an award winning photo and you want the very best results, some people choose to save in the RAW format. For Canon, these files are *.crw, for Nikon, they are *.nef and other manufacturers have there own extensions as well. Please refer to David Coffin's web site for a complete list of extensions.


3 Delphi Functions I've Provided

There are 3 functions that you can use to work with RAW images:

NOTE: Not all RAW files have thumbnails built into them
NOTE: Although MOST thumbails are in JPG format, there are quite a few that are in PPM format and some in TIFF format.

These 3 functions are located in the CstdIO.pas file. In order to show you how to use them, I've provided a sample project that utilizes them. The sample project allows you to browse for a file and then either get INFO on it, or LOAD the raw file, or Extract the thumbnail.


Source Files And What They Do
When you download the Delphi sample project files, you get a ZIP file that contains the following files:


** NOTE: The TFastFile class is basically a BUFFERED file I/O system that uses a 4K buffer. This produces MUCH faster processing of reading single byte at a time. It's about 20 times faster than using the standard TFileStream class. Have fun with it.

**** NOTE: The CSTDIO not only contains the 3 Raw function calls, but it also contains all of the FILE I/O faking needed. See, the C++ library has it's own TStream which is DIFFERENT from Delphi's TStream :(  So, I had to create all of the C++ stream functions like fseek, feof, fread, fwrite, fopen, fclose etc...


Files To Download

Please DONATE to keep my efforts worth it. As long as the donations are fair, I will keep this web site up.

Click on the "Make A Donation" button to donate an amount that you think is fair.


Download Sample Delphi Project files.
Download Sample Raw Photo
Download Latest MSDCRAW.DLL file (dated 01/17/2008).

OLDER Previous Versions
     OLDER Download Sample Delphi Project files. (dated April 2008)
     OLDER Download Sample Delphi Project files. (dated June 2007)
 

NOTE: You NEED to make sure you have the latest version of the MSDCRAW.DLL on an ongoing basis. This is because it's periodically updated to add new camera models to the list of what RAW files it can deal with.
 


Donations

If you wish to leave us mail just click on the name below:
Mail Box E-Mail to: Davie Lee Reed


 
 


































































DAVID COFFIN AREA:

David, here are the files in question:

SIGMA Problem dated 01/24/2006
Sigma photo of a bird IMG00203.X3F
Same photo converted to jpg with the sigma software IMG00203_sRGB.JPG
 
 
 

Files below are older problem files that have been resolved.

2 Sample NEF Files:
File to produce a JPG thumbnail: nef_jpg.nef
File to produce a PPM thumbnail: nef_ppm.nef

08/2005
Canon 350D file that decodes as black :(: Download CANON.350D CR2 raw file.

05/2005
PHASE_ONE doesn't parse a viable thumbnail : Download phaseone raw file.
CANON_CR2 doesn't dcraw a viable image: Download CANON.CR2 raw file.
RT16.TIF file that dcraw decodes black and parse extracts white thumbnail: Download RT16.TIF.