D70Reader (Command Line)

Current Version 0.35

D70Reader: What It Does

Nikon D40[x], D50, D60, D80, D100, D200, D300, D2H[s], D2X[s], D700, and D3 Cameras
It is all about the data that is embedded in each image you take with the D70, or any other digital camera. The D70Reader will extract that data in readable form, from the image file. Photoshop also does this, but it also likes to drop some of it on the floor! In using Photoshop CS, I was not able to find a way to cut and paste the information. I could not do this, so that I could send it in an email message, etc. I ended up transferring the data by re-typing it. That is why I originally wrote the program.

Here is an example of EXIF data taken directly from the camera in a NEF image:

D70ReaderProgramVersion 0.18
Filename DSC_0001.NEF
Make NIKON CORPORATION
Model NIKON D70
Orientation Horizontal (normal)
Software Ver.1.02
ExposureTime 1/200 seconds
FNumber 7.100000
ExposureProgram Auto
DateTimeDigitized 2005:02:03 10:00:31
ExposureBiasValue 0.000000
MeteringMode Multi-segment
Flash No Flash
FocalLength 70mm
UserComment
FocalLengthIn35mmFilm 105mm
ISOUsed 200
Quality RAW
WhiteBalance AUTO
Sharpening AUTO
FocusMode AF-S
FlashSetting NORMAL
FlashMode
ISOSet 200
ToneCompensation AUTO
LensType G
Lens 18-70mm f/3.5-4.5
LensInfo 40 01 0c 00
ColorMode MODE1a
LightSource NATURAL
NoiseReduction OFF
ShutterCount 1766
ImageOptimization
Saturation NORMAL
VariProgram AUTO

Here is the EXIF data after being processed by Adobe Photoshop CS:

D70ReaderProgramVersion 0.17
Filename DSC_0001.JPG
Make NIKON CORPORATION
Model NIKON D70
Orientation Horizontal (normal)
Software Adobe Photoshop CS Windows
ExposureTime 1/200 seconds
FNumber 7.100000
ISOSpeedRatings 200
ExposureBiasValue 0.000000
MeteringMode Multi-segment
Flash No Flash
FocalLength 70mm
ExifImageWidth 3008
ExifImageLength 2000
FocalLengthIn35mmFilm 105mm

Notice all the data that is missing!

Now, Adobe Photoshop CS embeds XMP data for the above image, and the D70Reader can dump it, along with the above data:

D70ReaderProgramVersion 0.18
Filename DSC_0001.JPG
Make NIKON CORPORATION
Model NIKON D70
Orientation Horizontal (normal)
Software Adobe Photoshop CS Windows
ExposureTime 1/200 seconds
FNumber 7.100000
ISOSpeedRatings 200
ExposureBiasValue 0.000000
MeteringMode Multi-segment
Flash No Flash
FocalLength 70mm
ExifImageWidth 3008
ExifImageLength 2000
FocalLengthIn35mmFilm 105mm
WhiteBalance As Shot
DateTimeDigitized 2005:02:03 10:00:31
FlashMode
FlashSetting NORMAL
ColorMode Unknown
Lens 18.0-70.0 mm f/3.5-4.5

But, as you see, it is still missing some of the original EXIF data!

The D70Reader can dump the full XMP data stream:


// Dumping MetaXAP tree for "uuid:190794a1-8b6a-11d9-b307-da58010faa69"

http://ns.adobe.com/camera-raw-settings/1.0/
Version = "2.2"
RawFileName = "DSC_0001.NEF"
WhiteBalance = "As Shot"
Exposure = "0.00"
Shadows = "5"
Brightness = "50"
Contrast = "+25"
Saturation = "0"
Sharpness = "25"
LuminanceSmoothing = "0"
ColorNoiseReduction = "25"
ChromaticAberrationR = "0"
ChromaticAberrationB = "0"
VignetteAmount = "0"
ShadowTint = "0"
RedHue = "0"
RedSaturation = "0"
GreenHue = "0"
GreenSaturation = "0"
BlueHue = "0"
BlueSaturation = "0"

http://ns.adobe.com/exif/1.0/
ExposureTime = "1/200"
ShutterSpeedValue = "7643856/1000000"
FNumber = "71/10"
ApertureValue = "5655638/1000000"
DateTimeOriginal = "2005-02-03T10:00:31-05:00"
ExposureBiasValue = "0/1"
MaxApertureValue = "43/10"
MeteringMode = "5"
FocalLength = "70/1"
FocalLengthIn35mmFilm = "105"
ISOSpeedRatings : seq
*[1] = "200"
Flash
Fired = "False"
Return = "0"
Mode = "0"
Function = "False"
RedEyeMode = "False"
ColorSpace = "4294967295"
PixelXDimension = "3008"
PixelYDimension = "2000"

http://ns.adobe.com/exif/1.0/aux/
Lens = "18.0-70.0 mm f/3.5-4.5"

http://ns.adobe.com/pdf/1.3/
Creator = "Adobe Photoshop CS Windows"
ModDate = "2005-03-02T17:26:18-05:00"
CreationDate = "2005-03-02T17:26:18-05:00"

http://ns.adobe.com/photoshop/1.0/
History = ""

http://ns.adobe.com/tiff/1.0/
Make = "NIKON CORPORATION"
Model = "NIKON D70"
Orientation = "1"
XResolution = "300/1"
YResolution = "300/1"
ResolutionUnit = "2"

http://ns.adobe.com/xap/1.0/
CreatorTool = "Adobe Photoshop CS Windows"
ModifyDate = "2005-03-02T17:26:18-05:00"
CreateDate = "2005-03-02T17:26:18-05:00"
MetadataDate = "2005-03-02T17:26:18-05:00"
Format = "image/jpeg"

http://ns.adobe.com/xap/1.0/mm/
DocumentID = "adobe:docid:photoshop:190794a0-8b6a-11d9-b307-da58010faa69"

http://purl.org/dc/elements/1.1/
format = "image/jpeg"

// End of tree dump for "uuid:190794a1-8b6a-11d9-b307-da58010faa69"


But again, it is not all of the original EXIF data, from the original NEF file.

Now, the D70Reader gives you a number of options. You may not be interested in any of them. But, some people will be. Here is a list:

Format:
d70reader [options] imageFileName
d70reader [options] *.NEF *.JPG

Options:

-h = this screen
-s = sort the standard output
-v = verbose (raw data)
-w = generate HTML table
-x = generate XML data tree
-c = generate Comma Separated Values (CSV) data
-js = generate JavaScript Array data
-j = extract JPG thumbnail image from NEF
-coc:n.n = set Circle Of Confusion (default = 0.0203)
-njf = create JPG FINE image from NEF
-cwb = use Camera WhiteBalance (with -njf)
-awb = use Auto WhiteBalance (with -njf)
-crgb = use Camera RGB (with -njf)
-noclip = don't Clip Colors (with -njf)
-br:n.n = set Image Brightness (default = 1.0) (with -njf)
-red:n.n = set Red Multiplier (default = 1.0) (with -njf)
-blue:n.n = set Blue Multiplier (default = 1.0) (with -njf)
-black:n = set Black Point (greater than 0) (with -njf)
-fd = fix the internal dates of an image file
-fdwo:n = fix the internal dates with minute offset
-rm = remove all EXIF data from JPG file
-re nefFile jpgFile = restore EXIF data to target JPG file
-ren:prefix = rename image file based on Shutter Count
-web = generate Photo Website
-cf:configFile = use alternate configuration file
-od:\outputDir\ = use specified output directory

The -s option will allow you to sort the data, before it is displayed to standard output.

The -v option will allow you to see the raw data (like the XMP data above).

The -w option will generate an HTML table of the data, that can be embedded in a web site.

The -x option will generate an XML data tree of the data. This is useful for only certain situations.

The -c option generates CSV data. This can be imported into a spreadsheet, or a database, so that you can keep track of your image data.

The -js option will allow you to create JavaScript array data, that can be used to create a web based slideshow of your images.

The -j option will extract the JPG thumbnail image from the NEF image file. With the D70Reader, you can process a whole directory of NEF image files, in a very short time, and extract the JPG images. The images will be automatically rotated, for proper display. This means that you do not have to shoot RAW + JPG anymore, and put more images on your CF card.

The above -j option has been modified to correctly place each data element in the proper bucket, instead of all at the lowest level. This means that other applications can now correctly read the EXIF data in the extracted thumbnail images.

The -coc option allows you to fine tune the Circle of Confusion value used in the Depth of Field calculation tags.

The -njf option will create a JPG FINE image file from a NEF image file. With the D70Reader, you can process a whole directory of NEF image files, in a very short time, and create the JPG images. The images will be automatically rotated, for proper display. There are eight sub-options that can be used to control the image output. These options are labeled to be used with the -njf option. The created image files are placed in a new directory called .\jpegfine. The original NEF files are not modified in any way.

The -fd option 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. The created image files are placed in a new directory called .\fixdate. The original files are not modified in any way.

Like the -fd option, the -fdwo option will allow you to fix the internal dates of an image file. Unlike the -fd option, it is not controlled by a configuration file. Instead, you enter the number of minutes that you would like the dates adjusted. To subtract time, precede the number that you enter with a negative sign (-).

The -rm option allows you to remove all EXIF data from a JPG image. A label of "NOEXIF_" is prepended to the image file name. The original image file is not modified in any way.

The -re option allows you to restore the EXIF data that certain image packages strip from their processed images. So, you can copy the original EXIF data from the NEF/Raw image file into the processed JPG file. Now, you can have your EXIF data, and your post-processed JPG image in one file! A new file is created with a label of "EXIF" prepended just before the .JPG extension. The original files are not modified in any way.

The -ren option allows you to rename the image file, based on the shutter count tag, and user supplied prefix.

The -web option will generate a complete web site of your photographs from within a directory. The text displayed on the screen is now controlled with a configuration file. To customize the displayed text, just modify the text in the file before generating the photo web site.

Links for downloading the program:

Windows XP Program Files

I hope this explains what this program is all about.

Jon Oman

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