How to delete SubIFD SubDirectory from JPG

Started by Eman, September 14, 2013, 03:53:25 PM

Previous topic - Next topic

Eman

Hello

Nikon D7000 Nef convert by IrfanView or ViewNX2 to JPG

Geosetter synchonize JPG with gpx file
when save changes => Exiftool reported errors

Report for saved images

XMP
Exiftool execution statement
C:\Users\xxx\AppData\Roaming\GeoSetter\tools\exiftool.exe -m -overwrite_original -TagsFromFile "O:\SpracovanieNATURE\Nikon\test1\DSC_2392.jpg" -XMP:all<"EXIF:all" -XMP:Orientation<"IFD0:Orientation" -XMP:all<"GPS:all" -XMP:GPSLatitude<"Composite:GPSLatitude" -XMP:GPSLongitude<"Composite:GPSLongitude" -XMP:GPSDateTime<"Composite:GPSDateTime" -XMP-dc:Creator<"IPTC:By-line" -XMP-dc:Description<"IPTC:Caption-Abstract" -XMP-dc:Rights<"IPTC:CopyrightNotice" -XMP-dc:Subject<"IPTC:Keywords" -XMP-dc:Title<"IPTC:ObjectName" -XMP-photoshop:AuthorsPosition<"IPTC:By-lineTitle" -XMP-photoshop:CaptionWriter<"IPTC:Writer-Editor" -XMP-photoshop:Category<"IPTC:Category" -XMP-photoshop:City<"IPTC:City" -XMP-photoshop:Country<"IPTC:Country-PrimaryLocationName" -XMP-photoshop:Credit<"IPTC:Credit" -XMP-photoshop:DateCreated<"IPTC:DateCreated" -XMP-photoshop:DateCreated<"Composite:DateTimeCreated" -XMP-photoshop:Headline<"IPTC:Headline" -XMP-photoshop:Instructions<"IPTC:SpecialInstructions" -XMP-photoshop:Source<"IPTC:Source" -XMP-photoshop:State<"IPTC:Province-State" -XMP-photoshop:SupplementalCategories<"IPTC:SupplementalCategories" -XMP-photoshop:TransmissionReference<"IPTC:OriginalTransmissionReference" -XMP-photoshop:Urgency<"IPTC:Urgency" -XMP-iptcCore:CountryCode<"IPTC:Country-PrimaryLocationCode" -XMP-iptcCore:Location<"IPTC:Sub-location" -XMP-iptcCore:IntellectualGenre<"IPTC:ObjectAttributeReference" -XMP-iptcCore:SubjectCode<"IPTC:SubjectReference" -XMP-dc:Description<"EXIF:ImageDescription" -XMP-photoshop:DateCreated<"EXIF:DateTimeOriginal" -XMP-photoshop:DateCreated<"Composite:SubSecDateTimeOriginal" -XMP-xmp:CreateDate<"Composite:SubSecCreateDate" -XMP-xmp:ModifyDate<"Composite:SubSecModifyDate" -XMP-dc:Rights<"EXIF:Copyright" -XMP-dc:Creator<"EXIF:Artist" "O:\SpracovanieNATURE\Nikon\test1\DSC_2392.xmp"

Errors/Warnings
Warning: Bad SubIFD SubDirectory start - O:\SpracovanieNATURE\Nikon\test1\DSC_2392.jpg

JPG

Exiftool execution statement
C:\Users\xxx\AppData\Roaming\GeoSetter\tools\exiftool.exe -xmp:geotag=  -@ "C:\Users\xxx\AppData\Local\Temp\et001DA209.arg" "O:\SpracovanieNATURE\Nikon\test1\DSC_2392.jpg"

-overwrite_original
-P
-EXIF:DateTimeOriginal=2013-09-08T11:08:35.80Z
-EXIF:CreateDate=2013-09-08T11:08:35.80Z
-EXIF:ModifyDate=2013-09-08T11:08:35.80Z
-EXIF:TimeZoneOffset=
-EXIF:GPSSatellites=0
-EXIF:GPSLatitude=48.94755984
-EXIF:GPSLongitude=19.00246701
-EXIF:GPSLatitudeRef=N
-EXIF:GPSLongitudeRef=E
-EXIF:GPSMapDatum=WGS-84
-EXIF:GPSVersionID=2.2.0.0
-EXIF:GPSAltitude=693.250000
-EXIF:GPSAltitudeRef=Above Sea Level
-EXIF:GPSDateStamp=2013:09:08
-EXIF:GPSTimeStamp=09:08:35


Errors/Warnings
Error: Can't read SubIFD data - O:/SpracovanieNATURE/Nikon/test1/DSC_2392.jpg


TEST
-g1 -exiftool:all  -exif:all

O:\SpracovanieNATURE\Nikon\test1>exiftool.exe DSC_2392.jpg -g1 -exiftool:all
xif:all
---- ExifTool ----
ExifTool Version Number         : 9.37
Warning                         : Bad SubIFD SubDirectory start
---- IFD0 ----
Subfile Type                    : Reduced-resolution image
Compression                     : Uncompressed
Photometric Interpretation      : RGB
Make                            : NIKON CORPORATION
Camera Model Name               : NIKON D7000
Strip Offsets                   : 124826
Orientation                     : Horizontal (normal)
Samples Per Pixel               : 3
Rows Per Strip                  : 120
Strip Byte Counts               : 57600
X Resolution                    : 300
Y Resolution                    : 300
Planar Configuration            : Chunky
Resolution Unit                 : inches
Software                        : Ver.1.04
Modify Date                     : 2013:09:08 11:08:35
Artist                          :
Reference Black White           : 0 255 0 255 0 255
Copyright                       :
Date/Time Original              : 2013:09:08 11:08:35
TIFF-EP Standard ID             : 1 0 0 0
---- ExifIFD ----
Exposure Time                   : 1/160
F Number                        : 6.3
Exposure Program                : Not Defined
ISO                             : 200
Sensitivity Type                : Recommended Exposure Index
Create Date                     : 2013:09:08 11:08:35
Exposure Compensation           : 0
Max Aperture Value              : 3.5
Metering Mode                   : Multi-segment
Light Source                    : Unknown
Flash                           : Off, Did not fire
Focal Length                    : 18.0 mm
User Comment                    :
Sub Sec Time                    : 80
Sub Sec Time Original           : 80
Sub Sec Time Digitized          : 80
Sensing Method                  : One-chip color area
File Source                     : Digital Camera
Scene Type                      : Directly photographed
CFA Pattern                     : [Red,Green][Green,Blue]
Custom Rendered                 : Normal
Exposure Mode                   : Auto
White Balance                   : Auto
Digital Zoom Ratio              : 1
Focal Length In 35mm Format     : 27 mm
Scene Capture Type              : Standard
Gain Control                    : None
Contrast                        : Normal
Saturation                      : Normal
Sharpness                       : Normal
Subject Distance Range          : Unknown


Phil Harvey

Looks like something wrote some bad EXIF.  There should be no SubIFD in the EXIF of a JPEG image.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

StarGeek

I tested this with Irfanview 4.36.  I loaded a .Nef from my Nikon D5100 and here is the output (-g1 -exiftool:all  -exif:all):
---- ExifTool ----
ExifTool Version Number         : 9.32
Warning                         : Bad ExifIFD offset for MakerNoteNikon3
---- IFD0 ----
Make                            : NIKON CORPORATION
Camera Model Name               : NIKON D5100
Orientation                     : Horizontal (normal)
Software                        : Ver.1.01
Modify Date                     : 2012:07:12 20:23:22
Reference Black White           : 0 255 0 255 0 255
Date/Time Original              : 2012:07:12 20:23:22
TIFF-EP Standard ID             : 1 0 0 0
---- SubIFD ----
Jpg From Raw Start              : 118246
Jpg From Raw Length             : 1002965
Y Cb Cr Positioning             : Co-sited
---- SubIFD1 ----
Subfile Type                    : Full-resolution Image
Compression                     : Nikon NEF Compressed
Photometric Interpretation      : Color Filter Array
Strip Offsets                   : 1121212
Samples Per Pixel               : 1
Rows Per Strip                  : 3280
Strip Byte Counts               : 14997582
X Resolution                    : 300
Y Resolution                    : 300
Planar Configuration            : Chunky
Resolution Unit                 : inches
CFA Repeat Pattern Dim          : 2 2
CFA Pattern 2                   : 0 1 1 2
---- ExifIFD ----
Exposure Time                   : 1/60
F Number                        : 5.0
Exposure Program                : Program AE
ISO                             : 250
Sensitivity Type                : Recommended Exposure Index
Create Date                     : 2012:07:12 20:23:22
Exposure Compensation           : 0
Max Aperture Value              : 4.0
Metering Mode                   : Multi-segment
Light Source                    : Unknown
Flash                           : On, Return detected
Focal Length                    : 28.0 mm
Sub Sec Time                    : 90
Sub Sec Time Original           : 90
Sub Sec Time Digitized          : 90
Sensing Method                  : One-chip color area
File Source                     : Digital Camera
Scene Type                      : Directly photographed
Custom Rendered                 : Normal
Exposure Mode                   : Auto
White Balance                   : Auto
Focal Length In 35mm Format     : 42 mm
Scene Capture Type              : Standard
Gain Control                    : None
Contrast                        : Normal
Saturation                      : Normal
Sharpness                       : Normal
Subject Distance Range          : Unknown


When I do the same to an old .Nef from a D5000, all I get is

---- ExifTool ----
ExifTool Version Number         : 9.32
* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).

Phil Harvey

You lost me.  Is this the D5100 output from an NEF file or a JPG file?  If NEF, then why does the IrfanView version matter?  I thought we were talking about JPG images.  Does IrfanView modify NEF's?  If so, it looks like it is corrupting these.

The D5000 output makes no sense either.  I have lots of original NEF (and JPG) samples from the D5000 and D5100 and ExifTool extracts a ton of information from all of these, with no warnings.  I don't see how you can get no output and no warnings.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).


Phil Harvey

OK.  I'm just going to go ahead and suggest rebuilding the EXIF of the JPG images to fix the problems.  This is explained in FAQ number 20.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Eman

already it works

exiftool -all= -tagsfromfile @ -all:all -unsafe test2

thanks

StarGeek

Quote from: Phil Harvey on September 15, 2013, 07:20:02 AM
You lost me.  Is this the D5100 output from an NEF file or a JPG file?  If NEF, then why does the IrfanView version matter?  I thought we were talking about JPG images.  Does IrfanView modify NEF's?  If so, it looks like it is corrupting these.

The D5000 output makes no sense either.  I have lots of original NEF (and JPG) samples from the D5000 and D5100 and ExifTool extracts a ton of information from all of these, with no warnings.  I don't see how you can get no output and no warnings.

Sorry for lack of clarity.

I took a nef created by a nikon d5000 and d5100.  I loaded each nef into irfanview, and then saved them out into Jpg format, which is what my understanding of what the OP was doing, except with a d7000 and also using ViewNX2.  I don't using ViewNX2, but I use Irfanview a lot, so I was trying see what my results would be with pictures from my cameras.   I included the Irfanview version number just in case anyone else tried it and come up with something different.

I ran ExifTool -g1 -exiftool:all  -exif:all on each of the converted Jpgs and the results were pasted above.  I don't believe that Irfanview can modify nefs, just show them.
* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).

Phil Harvey

IrfanView is definitely doing bad things with the EXIF it writes to the JPG.  There should be no SubIFD.  This bug should be reported to IrfanView.  Also, the lack of EXIF in the D5000 image is odd.  From ExifTool's point of view, there is no difference copying the EXIF from D5000 or D5100 NEF to JPG images, so I don't know why there should be a difference with IrfanView.  I would report this as well, as a separate bug.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).