This page covers some of dcpTool’s more technical aspects:
The XML schema
The XML schema for dcpTool was chosen largely to provide as human readable a representation of a DCP file as possible. Broadly speaking, the schema simply mirrors the DCP format as laid out in the DNG Specification, and shouldn’t give anyone that has studied the spec any trouble. However, there are a few things to be aware of:
  1. 1.The color space that the XML file (the huesatdelta tables, etc) is coded in is the same as the DCP files use - what Adobe call a RIMM space, which is  a scene referred, ProPhoto primaries, gamma 1 space.
  2. 2.DCP files contain a “Fingerprint”, which is an MD5 hash of the critical portions of the profile. dcpTool does not dump that to the XML file, but does create a new MD5 hash whenever it compiles a DCP file.
Compiling the software from source
Here’s what you need do to compile the software from source:
  1. 1.All the dcpTool source code (but not the source code for the various libraries) is included in the main download file.
  2. 2.dcpTool was built under VC Express 2008 for Windows, and XCode 3.1 for the Mac. The respective project files are included.
  3. 3.In order to compile dcpTool, the first step is to download the Adobe DNG SDK 1.2, fully install it, as detailed in the SDK’s documentation. That will include downloading and installing the Adobe XMP SDK, as well as the appropriate versions of Expat, zlib, MD5 and QTDevWin.
  4. 4.Then check that you have correctly installed the SDK by compiling the Adobe dng_validate application supplied as part of the SDK. Until you can do that, you will not be able to compile dcpTool.
  5. 5.Copy the dng_sdk and XMP-SDK subdirectories from your DNG SDK installation to the dcpTool directory. There are placeholder subdirectories already created in the dcpTool’s distribution ZIP file to accommodate these. Note that must copy all of the various “third-party” library packages that you downloaded as part of the DNG and XMP SDK installation process
  6. 6.Modify the dng_shared.cpp file in the dng_SDK using the supplied dng_shared.diff patch file. This enables the extraction of camera profiles from DNG files
  7. 7.If you are using Windows, you must also download the libxml2 libraries (these are already part of OS X 10.4 and later). The most convenient location to get these is Igor Zlatković's web site: Then place the libxml and iconv files in the placeholder directories in the dcpTool file structure - only the binary dll from the zlib library is required. You will need to download the following libraries:  
  8. libxml2, the XML parser and processor.
  9. iconv, the character encoding toolkit.
  10. zlib, the compression toolkit (only the dll is required)
  11. 8.Once you have done this, you should have a directory structure that looks like:
  12. dcpTool root
  13. —dcpTool.xcodeproj
  14. —dcpTool.vcproj
  15. —main.cpp
  16. —...etc....
  17. —dng_sdk
  18. —source
  19. —iconv (Windows only)
  20. —include
  21. —libxml2 (Windows only)
  22. —include
  23. —XMP-SDK
  24. —public
  25. —include
You can then compile by opening either dcpTool.codeproj in XCode, or dcpTool.vcproj in VC Express.
Note that in order to run the Windows dcpTool you will require the three DLLs (inconv.dll, libxml2.dll and zlib1.dll) from teh libraries you downloadede to be in the same directory as dcpTool.exe
dcpTool and DNG Camera Profiles, technically speaking