D70Reader (Command Line)

Current Version 0.35

D70Reader: Revision History

Version 0.35 - Thu Jul 24 17:02:46 EDT 2008:
Changed MeteringMode descriptive text. Improved AFPoint reporting. Added additional FlashMode items. Added processing for MultiExposure and AFInfo2 tags. Added support for D60, D300, D700, and D3 cameras. Updated web site address. Added logic for new tags. Added support for new lenses.

Version 0.34 - Mon Jan 15 12:45:09 EST 2007:
Added support for the Nikon D40, and D80. Updated the logic to use the new XMP library. Fixed -ren bug. Added ProgramShift, CropHiSpeed, ColorSpace, AutoBracketRelease, and HighISONoiseReduction tags. Added additional lenses to the lens database.

Version 0.33 - Sat Feb 18 18:57:02 UTC 2006:
Added the -ren option to rename the image file, based on the shutter count tag, and user supplied prefix.

Version 0.32 - Fri Feb 3 09:52:51 EST 2006:
Fixed a problem created in version 0.31, with the -web option. The previous changes made it necessary to include the GPS tags in the data, even if you had no need for them. The effect was a JavaScript error in the generated HTML page.

Version 0.31 - Thu Jan 26 10:23:05 EST 2006:
Added GPS map linking to -web option. Added -fdwo option. This option allows an image timestamp to be modified by an offset of minutes. A negative value can be entered to subtract time.

Version 0.30 - Thu Jan 12 23:02:39 UTC 2006:
Added -coc (Circle of Confusion) option. Added DOF (Depth of Field) tags:

NearFocusLimitDOF_Type0
FarFocusLimitDOF_Type0
HyperfocalDistance_Type0
TotalDOF_Type0
CircleOfConfusion_Type0

Not all image files contain enough information to populate these new tags. You will not see them if that is the case. One data element that is required, is the focus distance. Not all lenses return this information.

Version 0.29 - Sat Dec 31 23:14:57 UTC 2005:
Added support for 94 more EXIF tags. To support additional EXIF tags, added suffix to tag names to allow for uniqueness. Added logic to handle GPS tags (I was not able to test this).

Modified -web option to support new tag name structure. Also modified -web option to dynamically look up tag names. For -web option, JPG image files were not being properly rotated, even though NEF files were. Fixed flag that impacted -js and -web options.

Fixed a bug with the -c, -js, and -web options when using a subset of all possible tags.

All files created by the program go into sub-directories under the 'd70reader' directory (fix_date, jpeg_fine, no_exif, restore_exif, thumbnail, and web).

Added option -s to sort the standard output.
Added EXIF data type indicator to the standard output.

The program now handles some non-Nikkor lenses.

Default configuration file renamed to 'd70reader29.conf'.

Fixed a bug with the -re option that resulted in failure of this option (don't know how long this has been there!).

Added check to handle invalid internal EXIF directory structures.

Reduced amount of verbose data displayed with the -v option.

Fixed bug with the -j, -re, and -njf options where the JPG file created, was invalid, if the source NEF file was a Nikon Capture modified file.

Finally, added support for the D200.

Version 0.28 - Mon Sep 12 20:58:44 UTC 2005:
Changed the DCRAW code to version 7.60. This version has a new demosaicing algorithm called Adaptive homogeneity- directed. This replaces the old Variable Number of Gradients Method. The older algorithm produces clearly visible color artifacts. Also added the -black option to control the black point of the image.

Version 0.27 - Sat Aug 13 16:40:15 UTC 2005:
Increased display length of hex dumped tags to a max of 40 bytes, instead of 20 bytes. Upgraded to the latest version of DCRAW, that fully supports the D50. Corrected LensID display for the D100. Renamed the second occurance of the CFAPattern tag to CFAPatternEXIF. Added the AFAperture, FocusPosition, MinFocalLength, MaxFocalLength, MaxApertureAtMinFocal, MaxApertureAtMaxFocal, MCUVersion, and EffectiveMaxAperture tags. These are derived from the LensDataBytes hex values.


Note: To see the new tags, if you currently use the D70Reader program, you should delete the 'd70reader2.conf' file, and have the program re-create it. Or, you could add the new tags to your existing control file.

Version 0.26 - Sat Jul 9 16:56:00 UTC 2005:
Added support for the Nikon D50. Added support for the Mac OS X 10.4 operating system. Added NikonCaptureOffsets tag. Added ExposureDifference tag. Updated the version of DCRAW to use, to fully support the D2X. Fixed a problem with the -re option, where not passing all parameters would cause the program to crash. Fixed a problem where Nikon Capture 4.3 modified files would cause the D70Reader program to crash. Added additional Start Of Frame markers to the logic used to determine a JPG images size. The previous version only checked on the standard one. Some image programs write the image using higher numbered SOF markers. Found a problem with some images that did not properly handle the offset to the next marker. Changed the code to allow for this problem. Renamed the ColorBalance1 tag to ColorBalance12, to reflect its tag number. Renamed the ColorBalanceD70 to ColorBalance151, using the tag number, and making the name generic, so that it could be used with non-D70 cameras. Added the SenserPixelSize tag. Fixed the Adobe XMP code, where some improperly created images, would cause the D70Reader to crash, because the XMP data was trash.


Note: If you use the -njf option with the D50, it is best to specify the -awb sub-option, since DCRAW does not currently support the D50. Using the -cwb option will give strange output as a result. This will change once DCRAW supports the D50, and the required changes have been merged with the D70Reader program.

Version 0.25 - Sat Jun 18 19:24:36 EDT 2005:
Added option -njf. This will create a JPEG FINE image file from a NEF image file. Also added -cwb (use camera whitebalance), -awb (use auto whitebalance), -crgb (use camera RGB), -noclip (don't clip colors), -br:n.n (set image brightness), -red:n.n (set red multiplier), and -blue:n.n (set blue multiplier). The last seven options are only used with the -njf option.

Fixed a problem with the -re option, where a temporary file was not being properly renamed, for vertical images.

Version 0.24 - Sat Jun 4 19:47:41 EDT 2005:
Added the -fd option. This will allow you to fix the internal dates within the image file. This is helpful, if the user never set the camera date and time, shot dozens of images, and now wants to correct the problem.

This option makes use of another configuration file called d70readerdate.conf, that is automatically created in the same directory as the d70reader2.conf file. This file can be edited with a text editor, to change the image dates, to whatever you need them to be. Be sure to follow the format of the image dates displayed in this file. If you don't, it will cause strange dates to display.

When you run this program with this option, the target file(s) you select, are recreated in the .\fixdate directory, and then the internal dates are modified. The original file is never modified in any way.

Version 0.23 - Fri May 27 13:06:32 EDT 2005:
Added the -od option, to allow the user to input a destination directory, for file output. Coded the decryption method to allow support for the LensID and FocusDistance for the D2X, D50, and D2Hs. Added the -re option. This option will copy NEF/Raw EXIF data to a target JPG file. This means that a JPG file that has been post-processed by an image software package, that normally drops the EXIF data, can have that data restored. Fixed a bug, where the HTML gallery index label was not using the d70readerweb.conf file for its display values.

Version 0.22 - Tue May 10 14:47:38 EDT 2005:
There has been a total rewrite of the program. The old ANSI C code was turning into spaghetti. This version uses C++, which makes it easier to maintain.

The -j option, for extraction of the thumbnail image that each NEF file contains, has been rewritten. The -jold option is no longer required, and has been removed.

The -cf option has been added. This option allows you to use an alternate configuration file, or files. You can now customize what tags you want displayed, by the task you are working on.

One large change, is the number of potential EXIF tags that can be displayed. The program has gone from an average of 25 tags, to a possible 140 tags. Most NEF files directly from the camera (D70) have about 120 tags. Most JPG files have less than that. To provide a transition path for users with an existing d70reader.conf file, that file is not touched when the new program is run. Instead, a new default configuration file is created. It is named d70reader2.conf. This will allow you to compare the two files, and then customize the new one, based on the old one.

When using the -web option, the web site pages that are
generated, now make the display of the EXIF data optional. By default, you will not see the EXIF data for the image, but you can toggle it on.

There is now a new configuration file for the -web option. This will control the contents of the text, that is displayed on each screen of the generated web site. The file is called d70readerweb.conf. The user can modify the text in this file before generating the web pages, and see the text/labels change accordingly. This new file is created automatically, in the same directory as the d70reader2.conf file.

For background colors, and fonts, the user can modify the gallery.css file, that is at the root level of each generated web site.

Added the "LensDataVersion", "FocusDistance", and "LensID" tags. The FocusDistance tag will show the lens focus distance in centimeters, inches, and feet, for D lenses. The LensID tag will show a more descriptive label for the lens. All of these currently work, for just the D70 camera. The D2X, D2Hs, and D50 encrypt this data, and I have not coded the decryption method yet.

Version 0.21 - Thu Apr 14 13:17:57 EDT 2005:
Added the -rm option to allow complete removal of the EXIF data from a JPG image. Fixed a problem with the -web option, where vertical images were not always displayed properly. Handle a situation where the image file does not contain the orientation tag 0x112. Fixed a problem where the -j option would fail with certain Nikon Capture created files. When using the -j option, the EXIF data is now correctly formatted into the proper buckets, instead of having it all at the lowest level. This means that other applications will now correctly read it. The original -j logic from version 0.20 is kept as -jold. There are still some image processing software created images, that can not be handled correctly with the newer -j option. The -jold option does work with some of these images.

The files created with the -rm option, have the string "NOEXIF_" prepended to their name. The original file is not touched.

Version 0.20 - Wed Mar 23 22:54:24 EST 2005:
Corrected a problem with the -web option. The JPG images taken directly from the camera were not being rotated properly.

Added the 'images' directory to the distribution. This contains the 'blank.jpg' image file. It is needed for the -web option. Check out the README file in that directory.

Version 0.19 - Mon Mar 21 17:38:33 EST 2005:
New option -web
Changed some output formatting.

Two missing EXIF tags were added to this version. You will have to either delete and then re-create the d70reader.conf file, in order for these tags to be displayed, or you can edit the file, and add the following two entries:

ImageWidth=yes
ImageLength=yes

If you do edit the file, be sure to use a text editor, like 'notepad', not an application like Microsoft Word.

Version 0.18 - Fri Mar 4 10:53:34 EST 2005:
Added option -js, to generate JavaScript arrays of the EXIF data. Added place holders for the missing tags for the -c option. Added the Adobe XMP SDK logic to capture more EXIF data for Adobe modified files. Fixed a problem with the lens display, where the decimal part was being truncated. Allow the *.* wildcard, ignoring non-image files. Added support for the D2X camera.

Version 0.17 - Mon Feb 21 15:47:19 EST 2005:
JPG extraction now works for the D100 and D2H. Added WhiteBalance and Sharpening tags. Fixed (hopefully) the last buffer overflow problem.

Version 0.16 - Sat Feb 19 14:01:53 EST 2005:
Added 'assert' logic to prevent bad data processing. Fixed a buffer overflow exception with format #1. Cleaned out dead code. Better control of iSystemType. Only process MakerNotes for Nikon cameras. Calculate shutter speed, instead of if/else logic. Added 'G-VR' and 'D-VR' lens types.

Version 0.15 - Mon Feb 14 22:52:53 EST 2005:
Changed the default location for the config file. The default is to create the file in the user space, not the system space. (Not in /etc, or c:\windows)

Version 0.14 - Fri Jan 28 12:17:09 EST 2005:
Added logic to rotate the JPG image when the -j option is used. The source now uses the IJG JPEG library. A configuration file called 'd70reader.conf' can be used to select the tags that will be displayed.

Version 0.13 - Sat Jan 22 15:57:10 EST 2005:
Fixed a problem with wildcard processing, where the program would stop on first error, instead of going on to the next file in the list. Also fixed, was the JPEG marker scan logic. Finally, changed the 'ifdef' logic for the FreeBSD system compile.

Version 0.12 - Fri Jan 21 09:34:51 EST 2005:
When using option -j, to extract the JPG image from a NEF image, write EXIF data to the new JPG file. Also modified the XML output to convert the tags to lowercase.

Version 0.11 - Thu Jan 13 12:03:17 EST 2005:
Corrected a problem with the -c option. Forgot to include the image file name in the output! Also added double quotes around the data elements.

Version 0.10 - Wed Jan 12 20:49:51 EST 2005:
Added -c option to generate CSV data.

Version 0.09 - Mon Jan 10 16:32:23 EST 2005:
Added -j option to extract JPG thumbnail image from a NEF image. Additional code cleanup.

Version 0.08 - Mon Jan 3 23:03:38 EST 2005:
Added tag 8827 (ISO). Modified to use right shift operators for selected formats that are less than 4 bytes long.

Version 0.07 - Sat Jan 1 12:05:28 EST 2005:
Fixed UserComment. Correct misspelling of 'seconds'.
Handled 'unknown' tag for D2H.

Version 0.06 - Thu Dec 30 16:20:39 EST 2004:
Added -x option. This option outputs XML data.

Version 0.05 - Wed Dec 29 16:01:24 EST 2004:
Added -w option. This option will create an HTML table of the EXIF data. This can then be inserted into an HTML document.

Version 0.04 - Mon Dec 27 16:19:25 EST 2004:
Added LensInfo. Reformatted raw lens data to be more presentable. Truncated decimal part of focal length display. Added to RCS revision system.

Version 0.03 - Sun Dec 26 11:19:15 EST 2004:
Added edits for Format 7 tags. Added the -v and -h options. Fixed a couple of Format 3 edits.

Version 0.02 - Thu Dec 23 14:13:18 EST 2004:
Added wildcard support.

Version 0.01 - Sun Dec 12 12:11:21 EST 2004:
First coding to combine nefexif and jpgexif programs.

Quick Links

Home

D70ReaderW (Windows)

D70Reader (Command Line)

Talbot.DOF (Windows)

Talbot.DOF (PocketPC)

ShutterClicks

Sol24.Tracker


Download

D70ReaderW (Windows)

D70Reader (Command Line)

Talbot.DOF (Windows)

Talbot.DOF (PocketPC)

ShutterClicks

Sol24.Tracker


Interesting Things

Visit W3Schools
Valid XHTML 1.0 Transitional
Valid CSS!
The content of this website has been verified as compliant with the W3C