This is a Freeware program, use at your own risk.

This software makes use of "The Independent JPEG Group's JPEG Software"
Specifically, it uses their image rotation logic.
Please read their copyright information, found in the jpeglib/README file.

This program only works with Nikon D70/D100 image files.
(It will work with NEF/RAW and JPG files.)

Check here for latest version:
http://home.comcast.net/~jonathan.oman/d70/index.html

Format:
        d70reader [-h|-v|-w|-x|-j|-c] image_file_name

        d70reader [-h|-v|-w|-x|-j|-c] *.NEF *.JPG

        -h = this screen
        -v = verbose (raw data)
        -w = generate HTML table
        -x = generate XML tree
        -j = extract JPG thumbnail image from NEF
        -c = generate Comma Separated Values (CSV) data

==========================================================================
Recently, I have found out that this program works with D100 image files,
as well as the D70.  I have tested un-modified image files directly from
the camera.  I don't know if this program will work with D100 image files
that have been modified by another application, such as Nikon Capture, or
Adobe Photoshop CS.

I have also tested this program with D2H NEF image files taken directly
from the camera.  A JPG image file that was created on the D2H, and
modified by an older version of Nikon Capture did not work.  I have not
had time to determine the reason.  This program may work with D2H JPG 
files taken directly from the camera, but I do not have access to a
D2H, so I can not test this.  The program worked well with the D2H NEF
files.

NOTE:  The -j option does not work for either the D100, or the D2H.  It
appears that the thumbnail tags the program relies on, are not returned
for these cameras.  I will have to investigate another way of doing this,
for these two cameras.

==========================================================================
This program has been tested on only the following Operating Systems (OS):

Windows 2000 Prof.
Windows XP Prof.
Slackware 10.0 Linux

It may not work on any other OS.

I have been told that my source compiles without any problems
on a Mac OS-X computer.  But, I do not have access to any Mac
systems, so I can not verify this, or provide an executable
for this OS.

I have also been told that this program can be compiled and
run under OS/2.  A minor modification had to be made to support
this, and this change has been made in the current source.

I have also been told that this program can be compiled and
run under FreeBSD.  A minor modification had to be made to support
this, and this change has been made in the current source.

==========================================================================
The program can be customized to output just the EXIF tags you want to
see.  This is controlled by a text based configuration file.  The file 
will be created the first time you run the program, with an image file.

The configuration file is called 'd70reader.conf', and can be found
in the '/etc' directory.

Note:  This program must be installed by the 'root' user, and must be
initially run by the 'root' user, to properly create the configuration
file.  See the INSTALL instructions.

Here is what it looks like:

ISOUsed=yes
Quality=yes
FocusMode=yes
FlashSetting=yes
FlashMode=yes
ISOSet=yes
ToneCompensation=yes
LensType=yes
Lens=yes
LensInfo=yes
ColorMode=yes
LightSource=yes
NoiseReduction=yes
ShutterCount=yes
ImageOptimization=yes
Saturation=yes
VariProgram=yes
Make=yes
Model=yes
Orientation=yes
Software=yes
ExposureTime=yes
FNumber=yes
ExposureProgram=yes
ISOSpeedRatings=yes
DateTimeDigitized=yes
ExposureBiasValue=yes
MeteringMode=yes
Flash=yes
FocalLength=yes
UserComment=yes
ExifImageWidth=yes
ExifImageLength=yes
FocalLengthIn35mmFilm=yes

You can use a text based editor, like 'vi' to modify
the configuration file.  To disable the display of a tag,
just set the tag name equal to 'no'.

==========================================================================
This program allows wildcard input characters:

d70reader *.NEF *.JPG

If there are other files in your directory besides image files,
don't do this:

d70reader *.*

The program will stop on the first non-image file it encounters.

==========================================================================
I have added the ability to extract the JPG thumbnail image file
that is embedded in the NEF file image.  You can do this with the
-j option.  This option will output the JPG file in the current
directory.  I chose to name the JPG file by appending '.JPG' to
the existing NEF file name.  Here is an example:

DSC_0007.NEF becomes DSC_0007.NEF.JPG

You will end up with two files in the current directory:

DSC_0007.NEF
DSC_0007.NEF.JPG

The NEF file will not be modified in any way.  The JPG file will
have the EXIF data embedded in it.  If you run the program 
more than once in the current directory, the JPG file that was
previously created will just be over-written.

The extracted thumbnail image will be automatically rotated, so
that it can be properly displayed in an image reader.

==========================================================================
Here is sample output:

File #1:

D70ReaderProgramVersion    : 0.11
Filename                   : DSC_0549.JPG
Make                       : NIKON CORPORATION
Model                      : NIKON D70
Orientation                : Horizontal (normal)
Software                   : Ver.1.02
ExposureTime               : 1/400 seconds
FNumber                    : 11.000000
ExposureProgram            : Auto
DateTimeDigitized          : 2004:09:14 16:51:55
ExposureBiasValue          : 0.000000
MeteringMode               : Multi-segment
Flash                      : Off
FocalLength                : 44mm
UserComment                :
ExifImageWidth             : 3008
ExifImageLength            : 2000
FocalLengthIn35mmFilm      : 66mm
ISOUsed                    : 200
Quality                    : NORMAL
FocusMode                  : AF-S
FlashSetting               :
FlashMode                  :
ISO-2                      : 200
ToneCompensation           : AUTO
LensType                   : G
Lens                       : 18-70mm f/3.5-4.5
LensInfo                   : 40 01 0c 00
ColorMode                  : MODE3a
LightSource                : NATURAL
NoiseReduction             : OFF
ShutterCount               : 982
ImageOptimization          :
Saturation                 : NORMAL
VariProgram                : LAND SCAPE

File #2:

D70ReaderProgramVersion    : 0.11
Filename                   : DSC_0580.NEF
Make                       : NIKON CORPORATION
Model                      : NIKON D70
Orientation                : Horizontal (normal)
Software                   : Ver.1.02
ExposureTime               : 1/320 seconds
FNumber                    : 14.000000
ExposureProgram            : Aperture-priority AE
DateTimeDigitized          : 2004:09:15 16:50:42
ExposureBiasValue          : 0.000000
MeteringMode               : Multi-segment
Flash                      : No Flash
FocalLength                : 18mm
UserComment                :
FocalLengthIn35mmFilm      : 27mm
ISOUsed                    : 200
Quality                    : RAW
FocusMode                  : AF-S
FlashSetting               : NORMAL
FlashMode                  :
ISO-2                      : 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               : 1013
ImageOptimization          : NORMAL
Saturation                 : NORMAL
VariProgram                :

File #3:

D70ReaderProgramVersion    : 0.12
Filename                   : DSC_0007.NEF.JPG
Make                       : NIKON CORPORATION
Model                      : NIKON D70
Software                   : D70Reader - v0.12
Orientation                : Horizontal (normal)
ExposureTime               : 1/60 seconds
FNumber                    : 32.000000
ExposureProgram            : Aperture-priority AE
DateTimeDigitized          : 2004:08:21 17:09:37
ExposureBiasValue          : 4.000000
MeteringMode               : Multi-segment
Flash                      : Auto, Fired, Return detected
FocalLength                : 60mm
ISOUsed                    : 200
Quality                    : BASIC
FocusMode                  : AF-S
FlashSetting               : NORMAL
FlashMode                  : Built-in,TTL
ISO-2                      : 200
ToneCompensation           : AUTO
LensType                   : D
Lens                       : 60mm f/2.8
LensInfo                   : 54 01 0c 00
ColorMode                  : MODE1a
LightSource                : SPEEDLIGHT
NoiseReduction             : OFF
ShutterCount               : 268
ImageOptimization          : NORMAL
Saturation                 : NORMAL
VariProgram                :
UserComment                :
FocalLengthIn35mmFilm      : 90mm

==========================================================================
Package Contents:

./bin/d70reader				-	Slackware Linux 10.0 program file
./d70reader.c				-	The main ANSI C source
./d70jpegtran.c				-	Modified IJG source file
./make_no_rotate			-	Build script that ignores image rotation logic
./make_rotate				-	Build script that uses image rotation logic
./tar_it				-	Script to 'tar' up the files

./jpeglib				-	The full IJG source directory
./jpeglib/cdjpeg.c			-	IJG source file
./jpeglib/rdswitch.c			-	IJG source file
./jpeglib/transupp.c			-	IJG source file
./jpeglib/cderror.h			-	IJG source file
./jpeglib/cdjpeg.h			-	IJG source file
./jpeglib/jconfig.h			-	IJG source file
./jpeglib/jinclude.h			-	IJG source file
./jpeglib/jpegint.h			-	IJG source file
./jpeglib/jpeglib.h			-	IJG source file
./jpeglib/jversion.h			-	IJG source file
./jpeglib/transupp.h			-	IJG source file

./README				-	This document
./INSTALL				-	Instructions on installing the program
./RunningTheD70ReaderProgramXP.doc	-	Microsoft Word 2000 document

Note:  The only IJG files listed, are the ones used by this application.

==========================================================================
Hack the source as you may.

Enjoy!

Jonathan D. Oman
jonathan.oman@comcast.net

