diff --git a/doc/getting-started.html b/doc/getting-started.html
index 94529942..8c98d607 100644
--- a/doc/getting-started.html
+++ b/doc/getting-started.html
@@ -86,7 +86,7 @@ own header and source files.
-
+
diff --git a/doc/iptc.xml b/doc/iptc.xml
index 7cfec25b..8e440dc8 100644
--- a/doc/iptc.xml
+++ b/doc/iptc.xml
@@ -20,6 +20,7 @@
2
2
Iptc.Envelope.ModelVersion
+ Short
Version of IIM part 1
@@ -32,6 +33,7 @@
0
1024
Iptc.Envelope.Destination
+ String
Routing information
@@ -44,6 +46,7 @@
2
2
Iptc.Envelope.FileFormat
+ Short
IIM appendix A file format
@@ -56,6 +59,7 @@
2
2
Iptc.Envelope.FileVersion
+ Short
File format version
@@ -68,6 +72,7 @@
0
10
Iptc.Envelope.ServiceId
+ String
Identifies the provider and product
@@ -80,6 +85,7 @@
8
8
Iptc.Envelope.EnvelopeNumber
+ String
Combined unique identification
@@ -92,6 +98,7 @@
0
32
Iptc.Envelope.ProductId
+ String
Identifies service subset
@@ -104,6 +111,7 @@
1
1
Iptc.Envelope.EnvelopePriority
+ String
Envelope handling priority
@@ -116,6 +124,7 @@
8
8
Iptc.Envelope.DateSent
+ Date
Date material was sent
@@ -128,6 +137,7 @@
11
11
Iptc.Envelope.TimeSent
+ Time
Time material was sent
@@ -140,6 +150,7 @@
0
32
Iptc.Envelope.CharacterSet
+ Undefined
Specifies character sets
@@ -152,6 +163,7 @@
14
80
Iptc.Envelope.UNO
+ String
Unique Name of Object
@@ -164,6 +176,7 @@
2
2
Iptc.Envelope.ARMId
+ Short
Abstract Relationship Method identifier
@@ -176,6 +189,7 @@
2
2
Iptc.Envelope.ARMVersion
+ Short
Abstract Relationship Method version
@@ -188,6 +202,7 @@
2
2
Iptc.Application2.RecordVersion
+ Short
Version of IIM part 2
@@ -200,6 +215,7 @@
3
67
Iptc.Application2.ObjectType
+ String
IIM appendix G object type
@@ -212,6 +228,7 @@
4
68
Iptc.Application2.ObjectAttribute
+ String
IIM appendix G object attribute
@@ -224,6 +241,7 @@
0
64
Iptc.Application2.ObjectName
+ String
Shorthand reference of content
@@ -236,6 +254,7 @@
0
64
Iptc.Application2.EditStatus
+ String
Content status
@@ -248,6 +267,7 @@
2
2
Iptc.Application2.EditorialUpdate
+ String
Indicates the type of update
@@ -260,6 +280,7 @@
1
1
Iptc.Application2.Urgency
+ String
Editorial urgency of content
@@ -272,6 +293,7 @@
13
236
Iptc.Application2.Subject
+ String
Structured definition of the subject
@@ -284,6 +306,7 @@
0
3
Iptc.Application2.Category
+ String
Identifies the subject
@@ -296,6 +319,7 @@
0
32
Iptc.Application2.SuppCategory
+ String
Refines the subject
@@ -308,6 +332,7 @@
0
32
Iptc.Application2.FixtureId
+ String
Identifies content that recurs
@@ -320,6 +345,7 @@
0
64
Iptc.Application2.Keywords
+ String
Information retrieval words
@@ -332,6 +358,7 @@
3
3
Iptc.Application2.LocationCode
+ String
ISO country code for content
@@ -344,6 +371,7 @@
0
64
Iptc.Application2.LocationName
+ String
Full country name for content
@@ -356,6 +384,7 @@
8
8
Iptc.Application2.ReleaseDate
+ Date
Earliest intended usable date
@@ -368,6 +397,7 @@
11
11
Iptc.Application2.ReleaseTime
+ Time
Earliest intended usable time
@@ -380,6 +410,7 @@
8
8
Iptc.Application2.ExpirationDate
+ Date
Latest intended usable date
@@ -392,6 +423,7 @@
11
11
Iptc.Application2.ExpirationTime
+ Time
Latest intended usable time
@@ -404,6 +436,7 @@
0
256
Iptc.Application2.SpecialInstructions
+ String
Editorial usage instructions
@@ -416,6 +449,7 @@
2
2
Iptc.Application2.ActionAdvised
+ String
Action provided to previous data
@@ -428,6 +462,7 @@
0
10
Iptc.Application2.ReferenceService
+ String
Service Identifier of a prior envelope
@@ -440,6 +475,7 @@
8
8
Iptc.Application2.ReferenceDate
+ Date
Date of a prior envelope
@@ -452,6 +488,7 @@
8
8
Iptc.Application2.ReferenceNumber
+ String
Envelope Number of a prior envelope
@@ -464,6 +501,7 @@
8
8
Iptc.Application2.DateCreated
+ Date
Creation date of intellectual content
@@ -476,6 +514,7 @@
11
11
Iptc.Application2.TimeCreated
+ Time
Creation time of intellectual content
@@ -488,6 +527,7 @@
8
8
Iptc.Application2.DigitizationDate
+ Date
Creation date of digital representation
@@ -500,6 +540,7 @@
11
11
Iptc.Application2.DigitizationTime
+ Time
Creation time of digital representation
@@ -512,6 +553,7 @@
0
32
Iptc.Application2.Program
+ String
Content creation program
@@ -524,6 +566,7 @@
0
10
Iptc.Application2.ProgramVersion
+ String
Content creation program version
@@ -536,6 +579,7 @@
1
1
Iptc.Application2.ObjectCycle
+ String
Morning
@@ -548,6 +592,7 @@
0
32
Iptc.Application2.Byline
+ String
Name of content creator
@@ -560,6 +605,7 @@
0
32
Iptc.Application2.BylineTitle
+ String
Title of content creator
@@ -572,6 +618,7 @@
0
32
Iptc.Application2.City
+ String
City of content origin
@@ -584,6 +631,7 @@
0
32
Iptc.Application2.SubLocation
+ String
Location within city
@@ -596,6 +644,7 @@
0
32
Iptc.Application2.ProvinceState
+ String
Province/State of content origin
@@ -608,6 +657,7 @@
3
3
Iptc.Application2.CountryCode
+ String
ISO country code of content origin
@@ -620,6 +670,7 @@
0
64
Iptc.Application2.CountryName
+ String
Full country name of content origin
@@ -632,6 +683,7 @@
0
32
Iptc.Application2.TransmissionReference
+ String
Location of original transmission
@@ -644,6 +696,7 @@
0
256
Iptc.Application2.Headline
+ String
Content synopsis
@@ -656,6 +709,7 @@
0
32
Iptc.Application2.Credit
+ String
Content provider
@@ -668,6 +722,7 @@
0
32
Iptc.Application2.Source
+ String
Original owner of content
@@ -680,6 +735,7 @@
0
128
Iptc.Application2.Copyright
+ String
Necessary copyright notice
@@ -692,6 +748,7 @@
0
128
Iptc.Application2.Contact
+ String
Person or organisation to contact
@@ -704,6 +761,7 @@
0
2000
Iptc.Application2.Caption
+ String
Content description
@@ -716,6 +774,7 @@
0
32
Iptc.Application2.Writer
+ String
Person responsible for caption
@@ -728,6 +787,7 @@
7360
7360
Iptc.Application2.RasterizedCaption
+ Undefined
Black and white caption image
@@ -740,6 +800,7 @@
2
2
Iptc.Application2.ImageType
+ String
Color components in an image
@@ -752,6 +813,7 @@
1
1
Iptc.Application2.ImageOrientation
+ String
Indicates the layout of an image
@@ -764,6 +826,7 @@
2
3
Iptc.Application2.Language
+ String
ISO 639:1988 language code
@@ -776,6 +839,7 @@
2
2
Iptc.Application2.AudioType
+ String
Information about audio content
@@ -788,6 +852,7 @@
6
6
Iptc.Application2.AudioRate
+ String
Sampling rate of audio content
@@ -800,6 +865,7 @@
2
2
Iptc.Application2.AudioResolution
+ String
Sampling resolution of audio content
@@ -812,6 +878,7 @@
6
6
Iptc.Application2.AudioDuration
+ String
Duration of audio content
@@ -824,6 +891,7 @@
0
64
Iptc.Application2.AudioOutcue
+ String
Final words or sounds of audio content
@@ -836,6 +904,7 @@
2
2
Iptc.Application2.PreviewFormat
+ Short
IIM appendix A file format of preview
@@ -848,6 +917,7 @@
2
2
Iptc.Application2.PreviewVersion
+ Short
File format version of preview
@@ -860,6 +930,7 @@
0
256000
Iptc.Application2.Preview
+ Undefined
Binary preview data
diff --git a/doc/iptc.xsl b/doc/iptc.xsl
index 488c5269..93110e50 100644
--- a/doc/iptc.xsl
+++ b/doc/iptc.xsl
@@ -53,10 +53,11 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
-
-
-
+
+
+
+
@@ -68,15 +69,16 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
- | Tag name |
- Tag description |
- Tag (dec) |
Tag (hex) |
- Mandatory |
- Repeatable |
+ Tag (dec) |
+ Record |
+ Key |
+ Type |
+ M. |
+ R. |
Min. bytes |
Max. bytes |
- Key |
+ Tag description |
@@ -98,10 +100,11 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
- |
- |
- |
|
+ |
+ |
+ |
+ |
@@ -130,7 +133,7 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
|
|
|
- |
+ |
@@ -140,7 +143,7 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
//
+ 0x0000
+ 0
+ 0x0000
+ Makernote
+ Exif.Canon.0x0000
+ Short
+ Unknown
+
+
CameraSettings1
1
0x0001
Makernote
Exif.Canon.CameraSettings1
+ Short
Various camera settings (1)
-
+
+ 0x0002
+ 2
+ 0x0002
+ Makernote
+ Exif.Canon.0x0002
+ Short
+ Unknown
+
+
+ 0x0003
+ 3
+ 0x0003
+ Makernote
+ Exif.Canon.0x0003
+ Short
+ Unknown
+
+
CameraSettings2
4
0x0004
Makernote
Exif.Canon.CameraSettings2
+ Short
Various camera settings (2)
-
+
ImageType
6
0x0006
Makernote
Exif.Canon.ImageType
+ Ascii
Image type
-
+
FirmwareVersion
7
0x0007
Makernote
Exif.Canon.FirmwareVersion
+ Ascii
Firmware version
-
+
ImageNumber
8
0x0008
Makernote
Exif.Canon.ImageNumber
+ Long
Image number
-
+
OwnerName
9
0x0009
Makernote
Exif.Canon.OwnerName
+ Ascii
Owner Name
-
+
SerialNumber
12
0x000c
Makernote
Exif.Canon.SerialNumber
+ Long
Camera serial number
-
+
+ 0x000d
+ 13
+ 0x000d
+ Makernote
+ Exif.Canon.0x000d
+ Short
+ Unknown
+
+
EosD30Functions
15
0x000f
Makernote
Exif.Canon.EosD30Functions
+ Short
EOS D30 Custom Functions
diff --git a/doc/tags-fujifilm.xml b/doc/tags-fujifilm.xml
index a2cfb6bc..6596917a 100644
--- a/doc/tags-fujifilm.xml
+++ b/doc/tags-fujifilm.xml
@@ -15,6 +15,7 @@
0x0000
Makernote
Exif.Fujifilm.Version
+ Undefined
Fujifilm Makernote version
@@ -23,6 +24,7 @@
0x1000
Makernote
Exif.Fujifilm.Quality
+ Ascii
Image quality setting
@@ -31,6 +33,7 @@
0x1001
Makernote
Exif.Fujifilm.Sharpness
+ Short
Sharpness setting
@@ -39,6 +42,7 @@
0x1002
Makernote
Exif.Fujifilm.WhiteBalance
+ Short
White balance setting
@@ -47,6 +51,7 @@
0x1003
Makernote
Exif.Fujifilm.Color
+ Short
Chroma saturation setting
@@ -55,6 +60,7 @@
0x1004
Makernote
Exif.Fujifilm.Tone
+ Short
Contrast setting
@@ -63,6 +69,7 @@
0x1010
Makernote
Exif.Fujifilm.FlashMode
+ Short
Flash firing mode setting
@@ -71,6 +78,7 @@
0x1011
Makernote
Exif.Fujifilm.FlashStrength
+ SRational
Flash firing strength compensation setting
@@ -79,6 +87,7 @@
0x1020
Makernote
Exif.Fujifilm.Macro
+ Short
Macro mode setting
@@ -87,54 +96,97 @@
0x1021
Makernote
Exif.Fujifilm.FocusMode
+ Short
Focusing mode setting
+ 0x1022
+ 4130
+ 0x1022
+ Makernote
+ Exif.Fujifilm.0x1022
+ Short
+ Unknown
+
+
SlowSync
4144
0x1030
Makernote
Exif.Fujifilm.SlowSync
+ Short
Slow synchro mode setting
-
+
PictureMode
4145
0x1031
Makernote
Exif.Fujifilm.PictureMode
+ Short
Picture mode setting
-
+
+ 0x1032
+ 4146
+ 0x1032
+ Makernote
+ Exif.Fujifilm.0x1032
+ Short
+ Unknown
+
+
Continuous
4352
0x1100
Makernote
Exif.Fujifilm.Continuous
+ Short
Continuous shooting or auto bracketing setting
-
+
+ 0x1101
+ 4353
+ 0x1101
+ Makernote
+ Exif.Fujifilm.0x1101
+ Short
+ Unknown
+
+
+ 0x1200
+ 4608
+ 0x1200
+ Makernote
+ Exif.Fujifilm.0x1200
+ Short
+ Unknown
+
+
BlurWarning
4864
0x1300
Makernote
Exif.Fujifilm.BlurWarning
+ Short
Blur warning status
-
+
FocusWarning
4865
0x1301
Makernote
Exif.Fujifilm.FocusWarning
+ Short
Auto Focus warning status
-
+
AeWarning
4866
0x1302
Makernote
Exif.Fujifilm.AeWarning
+ Short
Auto Exposure warning status
diff --git a/doc/tags-nikon1.xml b/doc/tags-nikon1.xml
index cd311af3..59125b82 100644
--- a/doc/tags-nikon1.xml
+++ b/doc/tags-nikon1.xml
@@ -15,6 +15,7 @@
0x0001
Makernote
Exif.Nikon1.Version
+ Undefined
Nikon Makernote version
@@ -23,6 +24,7 @@
0x0002
Makernote
Exif.Nikon1.ISOSpeed
+ Short
ISO speed setting
@@ -31,6 +33,7 @@
0x0003
Makernote
Exif.Nikon1.ColorMode
+ Ascii
Color mode
@@ -39,6 +42,7 @@
0x0004
Makernote
Exif.Nikon1.Quality
+ Ascii
Image quality setting
@@ -47,6 +51,7 @@
0x0005
Makernote
Exif.Nikon1.WhiteBalance
+ Ascii
White balance
@@ -55,6 +60,7 @@
0x0006
Makernote
Exif.Nikon1.Sharpening
+ Ascii
Image sharpening setting
@@ -63,6 +69,7 @@
0x0007
Makernote
Exif.Nikon1.Focus
+ Ascii
Focus mode
@@ -71,54 +78,79 @@
0x0008
Makernote
Exif.Nikon1.Flash
+ Ascii
Flash mode
+ 0x000a
+ 10
+ 0x000a
+ Makernote
+ Exif.Nikon1.0x000a
+ Rational
+ Unknown
+
+
ISOSelection
15
0x000f
Makernote
Exif.Nikon1.ISOSelection
+ Ascii
ISO selection
-
+
+ DataDump
+ 16
+ 0x0010
+ Makernote
+ Exif.Nikon1.DataDump
+ Undefined
+ Data dump
+
+
ImageAdjustment
128
0x0080
Makernote
Exif.Nikon1.ImageAdjustment
+ Ascii
Image adjustment setting
-
+
Adapter
130
0x0082
Makernote
Exif.Nikon1.Adapter
+ Ascii
Adapter used
-
+
FocusDistance
133
0x0085
Makernote
Exif.Nikon1.FocusDistance
+ Rational
Manual focus distance
-
+
DigitalZoom
134
0x0086
Makernote
Exif.Nikon1.DigitalZoom
+ Rational
Digital zoom setting
-
+
AFFocusPos
136
0x0088
Makernote
Exif.Nikon1.AFFocusPos
+ Undefined
AF focus position
diff --git a/doc/tags-nikon2.xml b/doc/tags-nikon2.xml
index 86198867..90b72579 100644
--- a/doc/tags-nikon2.xml
+++ b/doc/tags-nikon2.xml
@@ -10,68 +10,103 @@
+ 0x0002
+ 2
+ 0x0002
+ Makernote
+ Exif.Nikon2.0x0002
+ Ascii
+ Unknown
+
+
Quality
3
0x0003
Makernote
Exif.Nikon2.Quality
+ Short
Image quality setting
-
+
ColorMode
4
0x0004
Makernote
Exif.Nikon2.ColorMode
+ Short
Color mode
-
+
ImageAdjustment
5
0x0005
Makernote
Exif.Nikon2.ImageAdjustment
+ Short
Image adjustment setting
-
+
ISOSpeed
6
0x0006
Makernote
Exif.Nikon2.ISOSpeed
+ Short
ISO speed setting
-
+
WhiteBalance
7
0x0007
Makernote
Exif.Nikon2.WhiteBalance
+ Short
White balance
-
+
Focus
8
0x0008
Makernote
Exif.Nikon2.Focus
+ Rational
Focus mode
-
+
+ 0x0009
+ 9
+ 0x0009
+ Makernote
+ Exif.Nikon2.0x0009
+ Ascii
+ Unknown
+
+
DigitalZoom
10
0x000a
Makernote
Exif.Nikon2.DigitalZoom
+ Rational
Digital zoom setting
-
+
Adapter
11
0x000b
Makernote
Exif.Nikon2.Adapter
+ Short
Adapter used
+
+ 0x0f00
+ 3840
+ 0x0f00
+ Makernote
+ Exif.Nikon2.0x0f00
+ Long
+ Unknown
+
diff --git a/doc/tags-nikon3.xml b/doc/tags-nikon3.xml
index 3bcebfaa..4524514b 100644
--- a/doc/tags-nikon3.xml
+++ b/doc/tags-nikon3.xml
@@ -15,6 +15,7 @@
0x0001
Makernote
Exif.Nikon3.Version
+ Undefined
Nikon Makernote version
@@ -23,6 +24,7 @@
0x0002
Makernote
Exif.Nikon3.ISOSpeed
+ Short
ISO speed used
@@ -31,6 +33,7 @@
0x0003
Makernote
Exif.Nikon3.ColorMode
+ Ascii
Color mode
@@ -39,6 +42,7 @@
0x0004
Makernote
Exif.Nikon3.Quality
+ Ascii
Image quality setting
@@ -47,6 +51,7 @@
0x0005
Makernote
Exif.Nikon3.WhiteBalance
+ Ascii
White balance
@@ -55,6 +60,7 @@
0x0006
Makernote
Exif.Nikon3.Sharpening
+ Ascii
Image sharpening setting
@@ -63,6 +69,7 @@
0x0007
Makernote
Exif.Nikon3.Focus
+ Ascii
Focus mode
@@ -71,6 +78,7 @@
0x0008
Makernote
Exif.Nikon3.FlashSetting
+ Ascii
Flash setting
@@ -79,6 +87,7 @@
0x0009
Makernote
Exif.Nikon3.FlashMode
+ Ascii
Flash mode
@@ -87,15 +96,17 @@
0x000b
Makernote
Exif.Nikon3.WhiteBalanceBias
+ SShort
White balance bias
- ColorBalance1
- 12
- 0x000c
+ 0x000d
+ 13
+ 0x000d
Makernote
- Exif.Nikon3.ColorBalance1
- Color balance 1
+ Exif.Nikon3.0x000d
+ Undefined
+ Unknown
ExposureDiff
@@ -103,6 +114,7 @@
0x000e
Makernote
Exif.Nikon3.ExposureDiff
+ Undefined
Exposure difference
@@ -111,15 +123,17 @@
0x000f
Makernote
Exif.Nikon3.ISOSelection
+ Ascii
ISO selection
- WhiteBalanceBias
- 11
- 0x000b
+ DataDump
+ 16
+ 0x0010
Makernote
- Exif.Nikon3.WhiteBalanceBias
- White balance bias
+ Exif.Nikon3.DataDump
+ Undefined
+ Data dump
ThumbOffset
@@ -127,6 +141,7 @@
0x0011
Makernote
Exif.Nikon3.ThumbOffset
+ Long
Thumbnail IFD offset
@@ -135,6 +150,7 @@
0x0012
Makernote
Exif.Nikon3.FlashComp
+ Undefined
Flash compensation setting
@@ -143,6 +159,7 @@
0x0013
Makernote
Exif.Nikon3.ISOSetting
+ Short
ISO speed setting
@@ -151,231 +168,350 @@
0x0016
Makernote
Exif.Nikon3.ImageBoundry
+ Short
Image boundry
+ 0x0017
+ 23
+ 0x0017
+ Makernote
+ Exif.Nikon3.0x0017
+ Undefined
+ Unknown
+
+
FlashBracketComp
24
0x0018
Makernote
Exif.Nikon3.FlashBracketComp
+ Undefined
Flash bracket compensation applied
-
+
ExposureBracketComp
25
0x0019
Makernote
Exif.Nikon3.ExposureBracketComp
+ SRational
AE bracket compensation applied
-
+
ImageAdjustment
128
0x0080
Makernote
Exif.Nikon3.ImageAdjustment
+ Ascii
Image adjustment setting
-
+
ToneComp
129
0x0081
Makernote
Exif.Nikon3.ToneComp
+ Ascii
Tone compensation setting (contrast)
-
+
AuxiliaryLens
130
0x0082
Makernote
Exif.Nikon3.AuxiliaryLens
+ Ascii
Auxiliary lens (adapter)
-
+
LensType
131
0x0083
Makernote
Exif.Nikon3.LensType
+ Byte
Lens type
-
+
Lens
132
0x0084
Makernote
Exif.Nikon3.Lens
+ Rational
Lens
-
+
FocusDistance
133
0x0085
Makernote
Exif.Nikon3.FocusDistance
+ Rational
Manual focus distance
-
+
DigitalZoom
134
0x0086
Makernote
Exif.Nikon3.DigitalZoom
+ Rational
Digital zoom setting
-
+
FlashType
135
0x0087
Makernote
Exif.Nikon3.FlashType
+ Byte
Type of flash used
-
+
AFFocusPos
136
0x0088
Makernote
Exif.Nikon3.AFFocusPos
+ Undefined
AF focus position
-
+
Bracketing
137
0x0089
Makernote
Exif.Nikon3.Bracketing
+ Short
Bracketing
-
- NEFCurve1
- 140
- 0x008c
- Makernote
- Exif.Nikon3.NEFCurve1
- NEF curve 1
-
+ 0x008a
+ 138
+ 0x008a
+ Makernote
+ Exif.Nikon3.0x008a
+ Short
+ Unknown
+
+
+ 0x008b
+ 139
+ 0x008b
+ Makernote
+ Exif.Nikon3.0x008b
+ Undefined
+ Unknown
+
+
ColorMode
141
0x008d
Makernote
Exif.Nikon3.ColorMode
+ Ascii
Color mode
-
+
SceneMode
143
0x008f
Makernote
Exif.Nikon3.SceneMode
+ Ascii
Scene mode
-
+
LightingType
144
0x0090
Makernote
Exif.Nikon3.LightingType
+ Ascii
Lighting type
-
+
+ 0x0091
+ 145
+ 0x0091
+ Makernote
+ Exif.Nikon3.0x0091
+ Undefined
+ Unknown
+
+
HueAdjustment
146
0x0092
Makernote
Exif.Nikon3.HueAdjustment
+ SShort
Hue adjustment
-
+
Saturation
148
0x0094
Makernote
Exif.Nikon3.Saturation
+ SShort
Saturation adjustment
-
+
NoiseReduction
149
0x0095
Makernote
Exif.Nikon3.NoiseReduction
+ Ascii
Noise reduction
-
- NEFCurve2
- 150
- 0x0096
- Makernote
- Exif.Nikon3.NEFCurve2
- NEF curve 2
-
-
+
ColorBalance2
151
0x0097
Makernote
Exif.Nikon3.ColorBalance2
+ Undefined
Color balance 2
-
+
+ 0x0098
+ 152
+ 0x0098
+ Makernote
+ Exif.Nikon3.0x0098
+ Undefined
+ Unknown
+
+
NEFThumbnailSize
153
0x0099
Makernote
Exif.Nikon3.NEFThumbnailSize
+ Short
NEF thumbnail size
-
+
+ 0x009a
+ 154
+ 0x009a
+ Makernote
+ Exif.Nikon3.0x009a
+ Rational
+ Unknown
+
+
+ 0x009b
+ 155
+ 0x009b
+ Makernote
+ Exif.Nikon3.0x009b
+ Short
+ Unknown
+
+
+ 0x009f
+ 159
+ 0x009f
+ Makernote
+ Exif.Nikon3.0x009f
+ SShort
+ Unknown
+
+
SerialNumber
160
0x00a0
Makernote
Exif.Nikon3.SerialNumber
+ Ascii
Camera serial number
-
+
+ 0x00a2
+ 162
+ 0x00a2
+ Makernote
+ Exif.Nikon3.0x00a2
+ Long
+ Unknown
+
+
+ 0x00a3
+ 163
+ 0x00a3
+ Makernote
+ Exif.Nikon3.0x00a3
+ Byte
+ Unknown
+
+
+ 0x00a5
+ 165
+ 0x00a5
+ Makernote
+ Exif.Nikon3.0x00a5
+ Long
+ Unknown
+
+
+ 0x00a6
+ 166
+ 0x00a6
+ Makernote
+ Exif.Nikon3.0x00a6
+ Long
+ Unknown
+
+
ShutterCount
167
0x00a7
Makernote
Exif.Nikon3.ShutterCount
+ Long
Number of shots taken by camera
-
+
+ 0x00a8
+ 168
+ 0x00a8
+ Makernote
+ Exif.Nikon3.0x00a8
+ Undefined
+ Unknown
+
+
ImageOptimization
169
0x00a9
Makernote
Exif.Nikon3.ImageOptimization
+ Ascii
Image optimization
-
+
Saturation
170
0x00aa
Makernote
Exif.Nikon3.Saturation
+ Ascii
Saturation
-
+
VariProgram
171
0x00ab
Makernote
Exif.Nikon3.VariProgram
+ Ascii
Vari program
-
- PrintIM
- 3584
- 0x0e00
- Makernote
- Exif.Nikon3.PrintIM
- Print image matching
-
diff --git a/doc/tags-sigma.xml b/doc/tags-sigma.xml
index ac0791e6..98e0df26 100644
--- a/doc/tags-sigma.xml
+++ b/doc/tags-sigma.xml
@@ -15,6 +15,7 @@
0x0002
Makernote
Exif.Sigma.SerialNumber
+ Ascii
Camera serial number
@@ -23,6 +24,7 @@
0x0003
Makernote
Exif.Sigma.DriveMode
+ Ascii
Drive Mode
@@ -31,6 +33,7 @@
0x0004
Makernote
Exif.Sigma.ResolutionMode
+ Ascii
Resolution Mode
@@ -39,6 +42,7 @@
0x0005
Makernote
Exif.Sigma.AutofocusMode
+ Ascii
Autofocus mode
@@ -47,6 +51,7 @@
0x0006
Makernote
Exif.Sigma.FocusSetting
+ Ascii
Focus setting
@@ -55,6 +60,7 @@
0x0007
Makernote
Exif.Sigma.WhiteBalance
+ Ascii
White balance
@@ -63,6 +69,7 @@
0x0008
Makernote
Exif.Sigma.ExposureMode
+ Ascii
Exposure mode
@@ -71,6 +78,7 @@
0x0009
Makernote
Exif.Sigma.MeteringMode
+ Ascii
Metering mode
@@ -79,6 +87,7 @@
0x000a
Makernote
Exif.Sigma.LensRange
+ Ascii
Lens focal length range
@@ -87,6 +96,7 @@
0x000b
Makernote
Exif.Sigma.ColorSpace
+ Ascii
Color space
@@ -95,6 +105,7 @@
0x000c
Makernote
Exif.Sigma.Exposure
+ Ascii
Exposure
@@ -103,6 +114,7 @@
0x000d
Makernote
Exif.Sigma.Contrast
+ Ascii
Contrast
@@ -111,6 +123,7 @@
0x000e
Makernote
Exif.Sigma.Shadow
+ Ascii
Shadow
@@ -119,6 +132,7 @@
0x000f
Makernote
Exif.Sigma.Highlight
+ Ascii
Highlight
@@ -127,6 +141,7 @@
0x0010
Makernote
Exif.Sigma.Saturation
+ Ascii
Saturation
@@ -135,6 +150,7 @@
0x0011
Makernote
Exif.Sigma.Sharpness
+ Ascii
Sharpness
@@ -143,6 +159,7 @@
0x0012
Makernote
Exif.Sigma.FillLight
+ Ascii
X3 Fill light
@@ -151,6 +168,7 @@
0x0014
Makernote
Exif.Sigma.ColorAdjustment
+ Ascii
Color adjustment
@@ -159,6 +177,7 @@
0x0015
Makernote
Exif.Sigma.AdjustmentMode
+ Ascii
Adjustment mode
@@ -167,6 +186,7 @@
0x0016
Makernote
Exif.Sigma.Quality
+ Ascii
Quality
@@ -175,6 +195,7 @@
0x0017
Makernote
Exif.Sigma.Firmware
+ Ascii
Firmware
@@ -183,6 +204,7 @@
0x0018
Makernote
Exif.Sigma.Software
+ Ascii
Software
@@ -191,6 +213,7 @@
0x0019
Makernote
Exif.Sigma.AutoBracket
+ Ascii
Auto bracket
diff --git a/doc/tags.xml b/doc/tags.xml
index 2adfb9c6..7097c321 100644
--- a/doc/tags.xml
+++ b/doc/tags.xml
@@ -18,6 +18,7 @@
0x0100
IFD0
Exif.Image.ImageWidth
+ Long
Image width
@@ -26,6 +27,7 @@
0x0101
IFD0
Exif.Image.ImageLength
+ Long
Image height
@@ -34,6 +36,7 @@
0x0102
IFD0
Exif.Image.BitsPerSample
+ Short
Number of bits per component
@@ -42,6 +45,7 @@
0x0103
IFD0
Exif.Image.Compression
+ Short
Compression scheme
@@ -50,6 +54,7 @@
0x0106
IFD0
Exif.Image.PhotometricInterpretation
+ Short
Pixel composition
@@ -58,6 +63,7 @@
0x010e
IFD0
Exif.Image.ImageDescription
+ Ascii
Image title
@@ -66,6 +72,7 @@
0x010f
IFD0
Exif.Image.Make
+ Ascii
Manufacturer of image input equipment
@@ -74,6 +81,7 @@
0x0110
IFD0
Exif.Image.Model
+ Ascii
Model of image input equipment
@@ -82,6 +90,7 @@
0x0111
IFD0
Exif.Image.StripOffsets
+ Long
Image data location
@@ -90,6 +99,7 @@
0x0112
IFD0
Exif.Image.Orientation
+ Short
Orientation of image
@@ -98,6 +108,7 @@
0x0115
IFD0
Exif.Image.SamplesPerPixel
+ Short
Number of components
@@ -106,6 +117,7 @@
0x0116
IFD0
Exif.Image.RowsPerStrip
+ Long
Number of rows per strip
@@ -114,6 +126,7 @@
0x0117
IFD0
Exif.Image.StripByteCounts
+ Long
Bytes per compressed strip
@@ -122,6 +135,7 @@
0x011a
IFD0
Exif.Image.XResolution
+ Rational
Image resolution in width direction
@@ -130,6 +144,7 @@
0x011b
IFD0
Exif.Image.YResolution
+ Rational
Image resolution in height direction
@@ -138,6 +153,7 @@
0x011c
IFD0
Exif.Image.PlanarConfiguration
+ Short
Image data arrangement
@@ -146,6 +162,7 @@
0x0128
IFD0
Exif.Image.ResolutionUnit
+ Short
Unit of X and Y resolution
@@ -154,6 +171,7 @@
0x012d
IFD0
Exif.Image.TransferFunction
+ Short
Transfer function
@@ -162,6 +180,7 @@
0x0131
IFD0
Exif.Image.Software
+ Ascii
Software used
@@ -170,6 +189,7 @@
0x0132
IFD0
Exif.Image.DateTime
+ Ascii
File change date and time
@@ -178,6 +198,7 @@
0x013b
IFD0
Exif.Image.Artist
+ Ascii
Person who created the image
@@ -186,6 +207,7 @@
0x013e
IFD0
Exif.Image.WhitePoint
+ Rational
White point chromaticity
@@ -194,6 +216,7 @@
0x013f
IFD0
Exif.Image.PrimaryChromaticities
+ Rational
Chromaticities of primaries
@@ -202,6 +225,7 @@
0x0201
IFD0
Exif.Image.JPEGInterchangeFormat
+ Long
Offset to JPEG SOI
@@ -210,6 +234,7 @@
0x0202
IFD0
Exif.Image.JPEGInterchangeFormatLength
+ Long
Bytes of JPEG data
@@ -218,6 +243,7 @@
0x0211
IFD0
Exif.Image.YCbCrCoefficients
+ Rational
Color space transformation matrix coefficients
@@ -226,6 +252,7 @@
0x0212
IFD0
Exif.Image.YCbCrSubSampling
+ Short
Subsampling ratio of Y to C
@@ -234,6 +261,7 @@
0x0213
IFD0
Exif.Image.YCbCrPositioning
+ Short
Y and C positioning
@@ -242,6 +270,7 @@
0x0214
IFD0
Exif.Image.ReferenceBlackWhite
+ Rational
Pair of black and white reference values
@@ -250,6 +279,7 @@
0x8298
IFD0
Exif.Image.Copyright
+ Ascii
Copyright holder
@@ -258,6 +288,7 @@
0x8769
IFD0
Exif.Image.ExifTag
+ Long
Exif IFD Pointer
@@ -266,6 +297,7 @@
0x8825
IFD0
Exif.Image.GPSTag
+ Long
GPSInfo IFD Pointer
@@ -274,6 +306,7 @@
0x829a
Exif
Exif.Photo.ExposureTime
+ Rational
Exposure time
@@ -282,6 +315,7 @@
0x829d
Exif
Exif.Photo.FNumber
+ Rational
F number
@@ -290,6 +324,7 @@
0x8822
Exif
Exif.Photo.ExposureProgram
+ Short
Exposure program
@@ -298,6 +333,7 @@
0x8824
Exif
Exif.Photo.SpectralSensitivity
+ Ascii
Spectral sensitivity
@@ -306,6 +342,7 @@
0x8827
Exif
Exif.Photo.ISOSpeedRatings
+ Short
ISO speed ratings
@@ -314,6 +351,7 @@
0x8828
Exif
Exif.Photo.OECF
+ Undefined
Optoelectric coefficient
@@ -322,6 +360,7 @@
0x9000
Exif
Exif.Photo.ExifVersion
+ Undefined
Exif Version
@@ -330,6 +369,7 @@
0x9003
Exif
Exif.Photo.DateTimeOriginal
+ Ascii
Date and time original image was generated
@@ -338,6 +378,7 @@
0x9004
Exif
Exif.Photo.DateTimeDigitized
+ Ascii
Date and time image was made digital data
@@ -346,6 +387,7 @@
0x9101
Exif
Exif.Photo.ComponentsConfiguration
+ Undefined
Meaning of each component
@@ -354,6 +396,7 @@
0x9102
Exif
Exif.Photo.CompressedBitsPerPixel
+ Rational
Image compression mode
@@ -362,6 +405,7 @@
0x9201
Exif
Exif.Photo.ShutterSpeedValue
+ SRational
Shutter speed
@@ -370,6 +414,7 @@
0x9202
Exif
Exif.Photo.ApertureValue
+ Rational
Aperture
@@ -378,6 +423,7 @@
0x9203
Exif
Exif.Photo.BrightnessValue
+ SRational
Brightness
@@ -386,6 +432,7 @@
0x9204
Exif
Exif.Photo.ExposureBiasValue
+ SRational
Exposure bias
@@ -394,6 +441,7 @@
0x9205
Exif
Exif.Photo.MaxApertureValue
+ Rational
Maximum lens aperture
@@ -402,6 +450,7 @@
0x9206
Exif
Exif.Photo.SubjectDistance
+ Rational
Subject distance
@@ -410,6 +459,7 @@
0x9207
Exif
Exif.Photo.MeteringMode
+ Short
Metering mode
@@ -418,6 +468,7 @@
0x9208
Exif
Exif.Photo.LightSource
+ Short
Light source
@@ -426,6 +477,7 @@
0x9209
Exif
Exif.Photo.Flash
+ Short
Flash
@@ -434,6 +486,7 @@
0x920a
Exif
Exif.Photo.FocalLength
+ Rational
Lens focal length
@@ -442,6 +495,7 @@
0x9214
Exif
Exif.Photo.SubjectArea
+ Short
Subject area
@@ -450,6 +504,7 @@
0x927c
Exif
Exif.Photo.MakerNote
+ Undefined
Manufacturer notes
@@ -458,6 +513,7 @@
0x9286
Exif
Exif.Photo.UserComment
+ Comment
User comments
@@ -466,6 +522,7 @@
0x9290
Exif
Exif.Photo.SubSecTime
+ Ascii
DateTime subseconds
@@ -474,6 +531,7 @@
0x9291
Exif
Exif.Photo.SubSecTimeOriginal
+ Ascii
DateTimeOriginal subseconds
@@ -482,6 +540,7 @@
0x9292
Exif
Exif.Photo.SubSecTimeDigitized
+ Ascii
DateTimeDigitized subseconds
@@ -490,6 +549,7 @@
0xa000
Exif
Exif.Photo.FlashpixVersion
+ Undefined
Supported Flashpix version
@@ -498,6 +558,7 @@
0xa001
Exif
Exif.Photo.ColorSpace
+ Short
Color space information
@@ -506,6 +567,7 @@
0xa002
Exif
Exif.Photo.PixelXDimension
+ Long
Valid image width
@@ -514,6 +576,7 @@
0xa003
Exif
Exif.Photo.PixelYDimension
+ Long
Valid image height
@@ -522,6 +585,7 @@
0xa004
Exif
Exif.Photo.RelatedSoundFile
+ Ascii
Related audio file
@@ -530,6 +594,7 @@
0xa005
Exif
Exif.Photo.InteroperabilityTag
+ Long
Interoperability IFD Pointer
@@ -538,6 +603,7 @@
0xa20b
Exif
Exif.Photo.FlashEnergy
+ Rational
Flash energy
@@ -546,6 +612,7 @@
0xa20c
Exif
Exif.Photo.SpatialFrequencyResponse
+ Undefined
Spatial frequency response
@@ -554,6 +621,7 @@
0xa20e
Exif
Exif.Photo.FocalPlaneXResolution
+ Rational
Focal plane X resolution
@@ -562,6 +630,7 @@
0xa20f
Exif
Exif.Photo.FocalPlaneYResolution
+ Rational
Focal plane Y resolution
@@ -570,6 +639,7 @@
0xa210
Exif
Exif.Photo.FocalPlaneResolutionUnit
+ Short
Focal plane resolution unit
@@ -578,6 +648,7 @@
0xa214
Exif
Exif.Photo.SubjectLocation
+ Short
Subject location
@@ -586,6 +657,7 @@
0xa215
Exif
Exif.Photo.ExposureIndex
+ Rational
Exposure index
@@ -594,6 +666,7 @@
0xa217
Exif
Exif.Photo.SensingMethod
+ Short
Sensing method
@@ -602,6 +675,7 @@
0xa300
Exif
Exif.Photo.FileSource
+ Undefined
File source
@@ -610,6 +684,7 @@
0xa301
Exif
Exif.Photo.SceneType
+ Undefined
Scene type
@@ -618,6 +693,7 @@
0xa302
Exif
Exif.Photo.CFAPattern
+ Undefined
CFA pattern
@@ -626,6 +702,7 @@
0xa401
Exif
Exif.Photo.CustomRendered
+ Short
Custom image processing
@@ -634,6 +711,7 @@
0xa402
Exif
Exif.Photo.ExposureMode
+ Short
Exposure mode
@@ -642,6 +720,7 @@
0xa403
Exif
Exif.Photo.WhiteBalance
+ Short
White balance
@@ -650,6 +729,7 @@
0xa404
Exif
Exif.Photo.DigitalZoomRatio
+ Rational
Digital zoom ratio
@@ -658,6 +738,7 @@
0xa405
Exif
Exif.Photo.FocalLengthIn35mmFilm
+ Short
Focal length in 35 mm film
@@ -666,6 +747,7 @@
0xa406
Exif
Exif.Photo.SceneCaptureType
+ Short
Scene capture type
@@ -674,6 +756,7 @@
0xa407
Exif
Exif.Photo.GainControl
+ Rational
Gain control
@@ -682,6 +765,7 @@
0xa408
Exif
Exif.Photo.Contrast
+ Short
Contrast
@@ -690,6 +774,7 @@
0xa409
Exif
Exif.Photo.Saturation
+ Short
Saturation
@@ -698,6 +783,7 @@
0xa40a
Exif
Exif.Photo.Sharpness
+ Short
Sharpness
@@ -706,6 +792,7 @@
0xa40b
Exif
Exif.Photo.DeviceSettingDescription
+ Undefined
Device settings description
@@ -714,6 +801,7 @@
0xa40c
Exif
Exif.Photo.SubjectDistanceRange
+ Short
Subject distance range
@@ -722,6 +810,7 @@
0xa420
Exif
Exif.Photo.ImageUniqueID
+ Ascii
Unique image ID
@@ -730,6 +819,7 @@
0x0001
Iop
Exif.Iop.InteroperabilityIndex
+ Ascii
Interoperability Identification
@@ -738,6 +828,7 @@
0x0002
Iop
Exif.Iop.InteroperabilityVersion
+ Undefined
Interoperability version
@@ -746,6 +837,7 @@
0x1000
Iop
Exif.Iop.RelatedImageFileFormat
+ Ascii
File format of image file
@@ -754,6 +846,7 @@
0x1001
Iop
Exif.Iop.RelatedImageWidth
+ Long
Image width
@@ -762,6 +855,7 @@
0x1002
Iop
Exif.Iop.RelatedImageLength
+ Long
Image height
@@ -770,6 +864,7 @@
0x0000
GPSInfo
Exif.GPSInfo.GPSVersionID
+ Byte
GPS tag version
@@ -778,6 +873,7 @@
0x0001
GPSInfo
Exif.GPSInfo.GPSLatitudeRef
+ Ascii
North or South Latitude
@@ -786,6 +882,7 @@
0x0002
GPSInfo
Exif.GPSInfo.GPSLatitude
+ Rational
Latitude
@@ -794,6 +891,7 @@
0x0003
GPSInfo
Exif.GPSInfo.GPSLongitudeRef
+ Ascii
East or West Longitude
@@ -802,6 +900,7 @@
0x0004
GPSInfo
Exif.GPSInfo.GPSLongitude
+ Rational
Longitude
@@ -810,6 +909,7 @@
0x0005
GPSInfo
Exif.GPSInfo.GPSAltitudeRef
+ Byte
Altitude reference
@@ -818,6 +918,7 @@
0x0006
GPSInfo
Exif.GPSInfo.GPSAltitude
+ Rational
Altitude
@@ -826,6 +927,7 @@
0x0007
GPSInfo
Exif.GPSInfo.GPSTimeStamp
+ Rational
GPS time (atomic clock)
@@ -834,6 +936,7 @@
0x0008
GPSInfo
Exif.GPSInfo.GPSSatellites
+ Ascii
GPS satellites used for measurement
@@ -842,6 +945,7 @@
0x0009
GPSInfo
Exif.GPSInfo.GPSStatus
+ Ascii
GPS receiver status
@@ -850,6 +954,7 @@
0x000a
GPSInfo
Exif.GPSInfo.GPSMeasureMode
+ Ascii
GPS measurement mode
@@ -858,6 +963,7 @@
0x000b
GPSInfo
Exif.GPSInfo.GPSDOP
+ Rational
Measurement precision
@@ -866,6 +972,7 @@
0x000c
GPSInfo
Exif.GPSInfo.GPSSpeedRef
+ Ascii
Speed unit
@@ -874,6 +981,7 @@
0x000d
GPSInfo
Exif.GPSInfo.GPSSpeed
+ Rational
Speed of GPS receiver
@@ -882,6 +990,7 @@
0x000e
GPSInfo
Exif.GPSInfo.GPSTrackRef
+ Ascii
Reference for direction of movement
@@ -890,6 +999,7 @@
0x000f
GPSInfo
Exif.GPSInfo.GPSTrack
+ Rational
Direction of movement
@@ -898,6 +1008,7 @@
0x0010
GPSInfo
Exif.GPSInfo.GPSImgDirectionRef
+ Ascii
Reference for direction of image
@@ -906,6 +1017,7 @@
0x0011
GPSInfo
Exif.GPSInfo.GPSImgDirection
+ Rational
Direction of image
@@ -914,6 +1026,7 @@
0x0012
GPSInfo
Exif.GPSInfo.GPSMapDatum
+ Ascii
Geodetic survey data used
@@ -922,6 +1035,7 @@
0x0013
GPSInfo
Exif.GPSInfo.GPSDestLatitudeRef
+ Ascii
Reference for latitude of destination
@@ -930,6 +1044,7 @@
0x0014
GPSInfo
Exif.GPSInfo.GPSDestLatitude
+ Rational
Latitude of destination
@@ -938,6 +1053,7 @@
0x0015
GPSInfo
Exif.GPSInfo.GPSDestLongitudeRef
+ Ascii
Reference for longitude of destination
@@ -946,6 +1062,7 @@
0x0016
GPSInfo
Exif.GPSInfo.GPSDestLongitude
+ Rational
Longitude of destination
@@ -954,6 +1071,7 @@
0x0017
GPSInfo
Exif.GPSInfo.GPSDestBearingRef
+ Ascii
Reference for bearing of destination
@@ -962,6 +1080,7 @@
0x0018
GPSInfo
Exif.GPSInfo.GPSDestBearing
+ Rational
Bearing of destination
@@ -970,6 +1089,7 @@
0x0019
GPSInfo
Exif.GPSInfo.GPSDestDistanceRef
+ Ascii
Reference for distance to destination
@@ -978,6 +1098,7 @@
0x001a
GPSInfo
Exif.GPSInfo.GPSDestDistance
+ Rational
Distance to destination
@@ -986,6 +1107,7 @@
0x001b
GPSInfo
Exif.GPSInfo.GPSProcessingMethod
+ Undefined
Name of GPS processing method
@@ -994,6 +1116,7 @@
0x001c
GPSInfo
Exif.GPSInfo.GPSAreaInformation
+ Undefined
Name of GPS area
@@ -1002,6 +1125,7 @@
0x001d
GPSInfo
Exif.GPSInfo.GPSDateStamp
+ Ascii
GPS date
@@ -1010,6 +1134,7 @@
0x001e
GPSInfo
Exif.GPSInfo.GPSDifferential
+ Short
GPS differential correction
diff --git a/doc/tags.xsl b/doc/tags.xsl
index 294324ae..7b5fe356 100644
--- a/doc/tags.xsl
+++ b/doc/tags.xsl
@@ -53,10 +53,10 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
-
-
-
+
+
+
@@ -65,12 +65,12 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
- | Tag name |
- Tag description |
- Tag (dec) |
Tag (hex) |
+ Tag (dec) |
IFD |
Key |
+ Type |
+ Tag description |
@@ -92,12 +92,12 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
- |
- |
- |
|
+ |
|
|
+ |
+ |
@@ -107,7 +107,7 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
//read(value);
}
diff --git a/src/exif.hpp b/src/exif.hpp
index 3ba55729..b50523eb 100644
--- a/src/exif.hpp
+++ b/src/exif.hpp
@@ -141,9 +141,10 @@ namespace Exiv2 {
*/
void setValue(const Value* pValue);
/*!
- @brief Set the value to the string \em value.
- Uses Value::read(const std::string&). If the %Exifdatum
- does not have a value yet, then an AsciiValue is created.
+ @brief Set the value to the string \em value. Uses Value::read(const
+ std::string&). If the %Exifdatum does not have a Value yet,
+ then a %Value of the correct type for this %Exifdatum is
+ created. An AsciiValue is created for unknown tags.
*/
void setValue(const std::string& value);
/*!
diff --git a/src/exifcomment.cpp b/src/exifcomment.cpp
index 51a94d46..f35b40c5 100644
--- a/src/exifcomment.cpp
+++ b/src/exifcomment.cpp
@@ -44,23 +44,25 @@ try {
Exiv2::ExifData &exifData = image->exifData();
/*
- Use Exiv2::CommentValue for Exif user comments. The format of the comment
- string includes an optional charset specification at the beginning:
+ Exiv2 uses a CommentValue for Exif user comments. The format of the
+ comment string includes an optional charset specification at the beginning:
[charset=["]Ascii|Jis|Unicode|Undefined["] ]comment
Undefined is used as a default if the comment doesn't start with a charset
definition.
- Following are a few examples of valid comments. Only the last one is
- written to the file.
+ Following are a few examples of valid comments. The last one is written to
+ the file.
*/
- Exiv2::CommentValue value("charset=Ascii An ASCII Exif comment added with Exiv2");
- value.read("charset=\"Unicode\" An Unicode Exif comment added with Exiv2");
- value.read("charset=\"Undefined\" An undefined Exif comment added with Exiv2");
- value.read("Another undefined Exif comment added with Exiv2");
-
- exifData["Exif.Photo.UserComment"] = value;
+ exifData["Exif.Photo.UserComment"]
+ = "charset=\"Unicode\" An Unicode Exif comment added with Exiv2";
+ exifData["Exif.Photo.UserComment"]
+ = "charset=\"Undefined\" An undefined Exif comment added with Exiv2";
+ exifData["Exif.Photo.UserComment"]
+ = "Another undefined Exif comment added with Exiv2";
+ exifData["Exif.Photo.UserComment"]
+ = "charset=Ascii An ASCII Exif comment added with Exiv2";
std::cout << "Writing user comment '"
<< exifData["Exif.Photo.UserComment"]
diff --git a/src/exiv2.cpp b/src/exiv2.cpp
index 00c15722..a0a3f4e4 100644
--- a/src/exiv2.cpp
+++ b/src/exiv2.cpp
@@ -726,7 +726,8 @@ namespace {
try {
Exiv2::ExifKey exifKey(key);
metadataId = exif;
- defaultType = Exiv2::asciiString;
+ defaultType = Exiv2::ExifTags::tagType(exifKey.tag(),
+ exifKey.ifdId());
}
catch (const Exiv2::Error&) {}
}
diff --git a/src/fujimn.cpp b/src/fujimn.cpp
index 3364b193..be940b8d 100644
--- a/src/fujimn.cpp
+++ b/src/fujimn.cpp
@@ -57,24 +57,28 @@ namespace Exiv2 {
// Fujifilm MakerNote Tag Info
const TagInfo FujiMakerNote::tagInfo_[] = {
- TagInfo(0x0000, "Version", "Fujifilm Makernote version", fujiIfdId, makerTags, printValue),
- TagInfo(0x1000, "Quality", "Image quality setting", fujiIfdId, makerTags, printValue),
- TagInfo(0x1001, "Sharpness", "Sharpness setting", fujiIfdId, makerTags, print0x1001),
- TagInfo(0x1002, "WhiteBalance", "White balance setting", fujiIfdId, makerTags, print0x1002),
- TagInfo(0x1003, "Color", "Chroma saturation setting", fujiIfdId, makerTags, print0x1003),
- TagInfo(0x1004, "Tone", "Contrast setting", fujiIfdId, makerTags, print0x1004),
- TagInfo(0x1010, "FlashMode", "Flash firing mode setting", fujiIfdId, makerTags, print0x1010),
- TagInfo(0x1011, "FlashStrength", "Flash firing strength compensation setting", fujiIfdId, makerTags, printValue),
- TagInfo(0x1020, "Macro", "Macro mode setting", fujiIfdId, makerTags, printOffOn),
- TagInfo(0x1021, "FocusMode", "Focusing mode setting", fujiIfdId, makerTags, print0x1021),
- TagInfo(0x1030, "SlowSync", "Slow synchro mode setting", fujiIfdId, makerTags, printOffOn),
- TagInfo(0x1031, "PictureMode", "Picture mode setting", fujiIfdId, makerTags, print0x1031),
- TagInfo(0x1100, "Continuous", "Continuous shooting or auto bracketing setting", fujiIfdId, makerTags, printOffOn),
- TagInfo(0x1300, "BlurWarning", "Blur warning status", fujiIfdId, makerTags, printOffOn),
- TagInfo(0x1301, "FocusWarning", "Auto Focus warning status", fujiIfdId, makerTags, printOffOn),
- TagInfo(0x1302, "AeWarning", "Auto Exposure warning status", fujiIfdId, makerTags, printOffOn),
+ TagInfo(0x0000, "Version", "Fujifilm Makernote version", fujiIfdId, makerTags, undefined, printValue),
+ TagInfo(0x1000, "Quality", "Image quality setting", fujiIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x1001, "Sharpness", "Sharpness setting", fujiIfdId, makerTags, unsignedShort, print0x1001),
+ TagInfo(0x1002, "WhiteBalance", "White balance setting", fujiIfdId, makerTags, unsignedShort, print0x1002),
+ TagInfo(0x1003, "Color", "Chroma saturation setting", fujiIfdId, makerTags, unsignedShort, print0x1003),
+ TagInfo(0x1004, "Tone", "Contrast setting", fujiIfdId, makerTags, unsignedShort, print0x1004),
+ TagInfo(0x1010, "FlashMode", "Flash firing mode setting", fujiIfdId, makerTags, unsignedShort, print0x1010),
+ TagInfo(0x1011, "FlashStrength", "Flash firing strength compensation setting", fujiIfdId, makerTags, signedRational, printValue),
+ TagInfo(0x1020, "Macro", "Macro mode setting", fujiIfdId, makerTags, unsignedShort, printOffOn),
+ TagInfo(0x1021, "FocusMode", "Focusing mode setting", fujiIfdId, makerTags, unsignedShort, print0x1021),
+ TagInfo(0x1022, "0x1022", "Unknown", fujiIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1030, "SlowSync", "Slow synchro mode setting", fujiIfdId, makerTags, unsignedShort, printOffOn),
+ TagInfo(0x1031, "PictureMode", "Picture mode setting", fujiIfdId, makerTags, unsignedShort, print0x1031),
+ TagInfo(0x1032, "0x1032", "Unknown", fujiIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1100, "Continuous", "Continuous shooting or auto bracketing setting", fujiIfdId, makerTags, unsignedShort, printOffOn),
+ TagInfo(0x1101, "0x1101", "Unknown", fujiIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1200, "0x1200", "Unknown", fujiIfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x1300, "BlurWarning", "Blur warning status", fujiIfdId, makerTags, unsignedShort, printOffOn),
+ TagInfo(0x1301, "FocusWarning", "Auto Focus warning status", fujiIfdId, makerTags, unsignedShort, printOffOn),
+ TagInfo(0x1302, "AeWarning", "Auto Exposure warning status", fujiIfdId, makerTags, unsignedShort, printOffOn),
// End of list marker
- TagInfo(0xffff, "(UnknownFujiMakerNoteTag)", "Unknown FujiMakerNote tag", fujiIfdId, makerTags, printValue)
+ TagInfo(0xffff, "(UnknownFujiMakerNoteTag)", "Unknown FujiMakerNote tag", fujiIfdId, makerTags, invalidTypeId, printValue)
};
FujiMakerNote::FujiMakerNote(bool alloc)
diff --git a/src/nikonmn.cpp b/src/nikonmn.cpp
index af6c98a3..61e7a83c 100644
--- a/src/nikonmn.cpp
+++ b/src/nikonmn.cpp
@@ -56,22 +56,24 @@ namespace Exiv2 {
// Nikon1 MakerNote Tag Info
const TagInfo Nikon1MakerNote::tagInfo_[] = {
- TagInfo(0x0001, "Version", "Nikon Makernote version", nikon1IfdId, makerTags, printValue),
- TagInfo(0x0002, "ISOSpeed", "ISO speed setting", nikon1IfdId, makerTags, print0x0002),
- TagInfo(0x0003, "ColorMode", "Color mode", nikon1IfdId, makerTags, printValue),
- TagInfo(0x0004, "Quality", "Image quality setting", nikon1IfdId, makerTags, printValue),
- TagInfo(0x0005, "WhiteBalance", "White balance", nikon1IfdId, makerTags, printValue),
- TagInfo(0x0006, "Sharpening", "Image sharpening setting", nikon1IfdId, makerTags, printValue),
- TagInfo(0x0007, "Focus", "Focus mode", nikon1IfdId, makerTags, print0x0007),
- TagInfo(0x0008, "Flash", "Flash mode", nikon1IfdId, makerTags, printValue),
- TagInfo(0x000f, "ISOSelection", "ISO selection", nikon1IfdId, makerTags, printValue),
- TagInfo(0x0080, "ImageAdjustment", "Image adjustment setting", nikon1IfdId, makerTags, printValue),
- TagInfo(0x0082, "Adapter", "Adapter used", nikon1IfdId, makerTags, printValue),
- TagInfo(0x0085, "FocusDistance", "Manual focus distance", nikon1IfdId, makerTags, print0x0085),
- TagInfo(0x0086, "DigitalZoom", "Digital zoom setting", nikon1IfdId, makerTags, print0x0086),
- TagInfo(0x0088, "AFFocusPos", "AF focus position", nikon1IfdId, makerTags, print0x0088),
+ TagInfo(0x0001, "Version", "Nikon Makernote version", nikon1IfdId, makerTags, undefined, printValue),
+ TagInfo(0x0002, "ISOSpeed", "ISO speed setting", nikon1IfdId, makerTags, unsignedShort, print0x0002),
+ TagInfo(0x0003, "ColorMode", "Color mode", nikon1IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0004, "Quality", "Image quality setting", nikon1IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0005, "WhiteBalance", "White balance", nikon1IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0006, "Sharpening", "Image sharpening setting", nikon1IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0007, "Focus", "Focus mode", nikon1IfdId, makerTags, asciiString, print0x0007),
+ TagInfo(0x0008, "Flash", "Flash mode", nikon1IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x000a, "0x000a", "Unknown", nikon1IfdId, makerTags, unsignedRational, printValue),
+ TagInfo(0x000f, "ISOSelection", "ISO selection", nikon1IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0010, "DataDump", "Data dump", nikon1IfdId, makerTags, undefined, printValue),
+ TagInfo(0x0080, "ImageAdjustment", "Image adjustment setting", nikon1IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0082, "Adapter", "Adapter used", nikon1IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0085, "FocusDistance", "Manual focus distance", nikon1IfdId, makerTags, unsignedRational, print0x0085),
+ TagInfo(0x0086, "DigitalZoom", "Digital zoom setting", nikon1IfdId, makerTags, unsignedRational, print0x0086),
+ TagInfo(0x0088, "AFFocusPos", "AF focus position", nikon1IfdId, makerTags, undefined, print0x0088),
// End of list marker
- TagInfo(0xffff, "(UnknownNikon1MnTag)", "Unknown Nikon1MakerNote tag", nikon1IfdId, makerTags, printValue)
+ TagInfo(0xffff, "(UnknownNikon1MnTag)", "Unknown Nikon1MakerNote tag", nikon1IfdId, makerTags, invalidTypeId, printValue)
};
Nikon1MakerNote::Nikon1MakerNote(bool alloc)
@@ -191,16 +193,19 @@ namespace Exiv2 {
// Nikon2 MakerNote Tag Info
const TagInfo Nikon2MakerNote::tagInfo_[] = {
- TagInfo(0x0003, "Quality", "Image quality setting", nikon2IfdId, makerTags, print0x0003),
- TagInfo(0x0004, "ColorMode", "Color mode", nikon2IfdId, makerTags, print0x0004),
- TagInfo(0x0005, "ImageAdjustment", "Image adjustment setting", nikon2IfdId, makerTags, print0x0005),
- TagInfo(0x0006, "ISOSpeed", "ISO speed setting", nikon2IfdId, makerTags, print0x0006),
- TagInfo(0x0007, "WhiteBalance", "White balance", nikon2IfdId, makerTags, print0x0007),
- TagInfo(0x0008, "Focus", "Focus mode", nikon2IfdId, makerTags, printValue),
- TagInfo(0x000a, "DigitalZoom", "Digital zoom setting", nikon2IfdId, makerTags, print0x000a),
- TagInfo(0x000b, "Adapter", "Adapter used", nikon2IfdId, makerTags, printValue),
+ TagInfo(0x0002, "0x0002", "Unknown", nikon2IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0003, "Quality", "Image quality setting", nikon2IfdId, makerTags, unsignedShort, print0x0003),
+ TagInfo(0x0004, "ColorMode", "Color mode", nikon2IfdId, makerTags, unsignedShort, print0x0004),
+ TagInfo(0x0005, "ImageAdjustment", "Image adjustment setting", nikon2IfdId, makerTags, unsignedShort, print0x0005),
+ TagInfo(0x0006, "ISOSpeed", "ISO speed setting", nikon2IfdId, makerTags, unsignedShort, print0x0006),
+ TagInfo(0x0007, "WhiteBalance", "White balance", nikon2IfdId, makerTags, unsignedShort, print0x0007),
+ TagInfo(0x0008, "Focus", "Focus mode", nikon2IfdId, makerTags, unsignedRational, printValue),
+ TagInfo(0x0009, "0x0009", "Unknown", nikon2IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x000a, "DigitalZoom", "Digital zoom setting", nikon2IfdId, makerTags, unsignedRational, print0x000a),
+ TagInfo(0x000b, "Adapter", "Adapter used", nikon2IfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0f00, "0x0f00", "Unknown", nikon2IfdId, makerTags, unsignedLong, printValue),
// End of list marker
- TagInfo(0xffff, "(UnknownNikon2MnTag)", "Unknown Nikon2MakerNote tag", nikon2IfdId, makerTags, printValue)
+ TagInfo(0xffff, "(UnknownNikon2MnTag)", "Unknown Nikon2MakerNote tag", nikon2IfdId, makerTags, invalidTypeId, printValue)
};
Nikon2MakerNote::Nikon2MakerNote(bool alloc)
@@ -363,54 +368,68 @@ namespace Exiv2 {
// Nikon3 MakerNote Tag Info
const TagInfo Nikon3MakerNote::tagInfo_[] = {
- TagInfo(0x0001, "Version", "Nikon Makernote version", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0002, "ISOSpeed", "ISO speed used", nikon3IfdId, makerTags, print0x0002),
- TagInfo(0x0003, "ColorMode", "Color mode", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0004, "Quality", "Image quality setting", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0005, "WhiteBalance", "White balance", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0006, "Sharpening", "Image sharpening setting", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0007, "Focus", "Focus mode", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0008, "FlashSetting", "Flash setting", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0009, "FlashMode", "Flash mode", nikon3IfdId, makerTags, printValue),
- TagInfo(0x000b, "WhiteBalanceBias", "White balance bias", nikon3IfdId, makerTags, printValue),
- TagInfo(0x000c, "ColorBalance1", "Color balance 1", nikon3IfdId, makerTags, printValue),
- TagInfo(0x000e, "ExposureDiff", "Exposure difference", nikon3IfdId, makerTags, printValue),
- TagInfo(0x000f, "ISOSelection", "ISO selection", nikon3IfdId, makerTags, printValue),
- TagInfo(0x000b, "DataDump", "Data dump", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0011, "ThumbOffset", "Thumbnail IFD offset", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0012, "FlashComp", "Flash compensation setting", nikon3IfdId, makerTags, print0x0012),
- TagInfo(0x0013, "ISOSetting", "ISO speed setting", nikon3IfdId, makerTags, print0x0002), // use 0x0002 print fct
- TagInfo(0x0016, "ImageBoundry", "Image boundry", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0018, "FlashBracketComp", "Flash bracket compensation applied", nikon3IfdId, makerTags, print0x0012), // use 0x0012 print fct
- TagInfo(0x0019, "ExposureBracketComp", "AE bracket compensation applied", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0080, "ImageAdjustment", "Image adjustment setting", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0081, "ToneComp", "Tone compensation setting (contrast)", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0082, "AuxiliaryLens", "Auxiliary lens (adapter)", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0083, "LensType", "Lens type", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0084, "Lens", "Lens", nikon3IfdId, makerTags, print0x0084),
- TagInfo(0x0085, "FocusDistance", "Manual focus distance", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0086, "DigitalZoom", "Digital zoom setting", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0087, "FlashType", "Type of flash used", nikon3IfdId, makerTags, print0x0087),
- TagInfo(0x0088, "AFFocusPos", "AF focus position", nikon3IfdId, makerTags, print0x0088),
- TagInfo(0x0089, "Bracketing", "Bracketing", nikon3IfdId, makerTags, print0x0089),
- TagInfo(0x008c, "NEFCurve1", "NEF curve 1", nikon3IfdId, makerTags, printValue),
- TagInfo(0x008d, "ColorMode", "Color mode", nikon3IfdId, makerTags, printValue),
- TagInfo(0x008f, "SceneMode", "Scene mode", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0090, "LightingType", "Lighting type", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0092, "HueAdjustment", "Hue adjustment", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0094, "Saturation", "Saturation adjustment", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0095, "NoiseReduction", "Noise reduction", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0096, "NEFCurve2", "NEF curve 2", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0097, "ColorBalance2", "Color balance 2", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0099, "NEFThumbnailSize", "NEF thumbnail size", nikon3IfdId, makerTags, printValue),
- TagInfo(0x00a0, "SerialNumber", "Camera serial number", nikon3IfdId, makerTags, printValue),
- TagInfo(0x00a7, "ShutterCount", "Number of shots taken by camera", nikon3IfdId, makerTags, printValue),
- TagInfo(0x00a9, "ImageOptimization", "Image optimization", nikon3IfdId, makerTags, printValue),
- TagInfo(0x00aa, "Saturation", "Saturation", nikon3IfdId, makerTags, printValue),
- TagInfo(0x00ab, "VariProgram", "Vari program", nikon3IfdId, makerTags, printValue),
- TagInfo(0x0e00, "PrintIM", "Print image matching", nikon3IfdId, makerTags, printValue),
+ TagInfo(0x0001, "Version", "Nikon Makernote version", nikon3IfdId, makerTags, undefined, printValue),
+ TagInfo(0x0002, "ISOSpeed", "ISO speed used", nikon3IfdId, makerTags, unsignedShort, print0x0002),
+ TagInfo(0x0003, "ColorMode", "Color mode", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0004, "Quality", "Image quality setting", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0005, "WhiteBalance", "White balance", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0006, "Sharpening", "Image sharpening setting", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0007, "Focus", "Focus mode", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0008, "FlashSetting", "Flash setting", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0009, "FlashMode", "Flash mode", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x000b, "WhiteBalanceBias", "White balance bias", nikon3IfdId, makerTags, signedShort, printValue),
+// TagInfo(0x000c, "ColorBalance1", "Color balance 1", nikon3IfdId, makerTags, xxx, printValue),
+ TagInfo(0x000d, "0x000d", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
+ TagInfo(0x000e, "ExposureDiff", "Exposure difference", nikon3IfdId, makerTags, undefined, printValue),
+ TagInfo(0x000f, "ISOSelection", "ISO selection", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0010, "DataDump", "Data dump", nikon3IfdId, makerTags, undefined, printValue),
+ TagInfo(0x0011, "ThumbOffset", "Thumbnail IFD offset", nikon3IfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x0012, "FlashComp", "Flash compensation setting", nikon3IfdId, makerTags, undefined, print0x0012),
+ TagInfo(0x0013, "ISOSetting", "ISO speed setting", nikon3IfdId, makerTags, unsignedShort, print0x0002), // use 0x0002 print fct
+ TagInfo(0x0016, "ImageBoundry", "Image boundry", nikon3IfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x0017, "0x0017", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
+ TagInfo(0x0018, "FlashBracketComp", "Flash bracket compensation applied", nikon3IfdId, makerTags, undefined, print0x0012), // use 0x0012 print fct
+ TagInfo(0x0019, "ExposureBracketComp", "AE bracket compensation applied", nikon3IfdId, makerTags, signedRational, printValue),
+ TagInfo(0x0080, "ImageAdjustment", "Image adjustment setting", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0081, "ToneComp", "Tone compensation setting (contrast)", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0082, "AuxiliaryLens", "Auxiliary lens (adapter)", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0083, "LensType", "Lens type", nikon3IfdId, makerTags, unsignedByte, printValue),
+ TagInfo(0x0084, "Lens", "Lens", nikon3IfdId, makerTags, unsignedRational, print0x0084),
+ TagInfo(0x0085, "FocusDistance", "Manual focus distance", nikon3IfdId, makerTags, unsignedRational, printValue),
+ TagInfo(0x0086, "DigitalZoom", "Digital zoom setting", nikon3IfdId, makerTags, unsignedRational, printValue),
+ TagInfo(0x0087, "FlashType", "Type of flash used", nikon3IfdId, makerTags, unsignedByte, print0x0087),
+ TagInfo(0x0088, "AFFocusPos", "AF focus position", nikon3IfdId, makerTags, undefined, print0x0088),
+ TagInfo(0x0089, "Bracketing", "Bracketing", nikon3IfdId, makerTags, unsignedShort, print0x0089),
+ TagInfo(0x008a, "0x008a", "Unknown", nikon3IfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x008b, "0x008b", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
+// TagInfo(0x008c, "NEFCurve1", "NEF curve 1", nikon3IfdId, makerTags, xxx, printValue),
+ TagInfo(0x008d, "ColorMode", "Color mode", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x008f, "SceneMode", "Scene mode", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0090, "LightingType", "Lighting type", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0091, "0x0091", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
+ TagInfo(0x0092, "HueAdjustment", "Hue adjustment", nikon3IfdId, makerTags, signedShort, printValue),
+ TagInfo(0x0094, "Saturation", "Saturation adjustment", nikon3IfdId, makerTags, signedShort, printValue),
+ TagInfo(0x0095, "NoiseReduction", "Noise reduction", nikon3IfdId, makerTags, asciiString, printValue),
+// TagInfo(0x0096, "NEFCurve2", "NEF curve 2", nikon3IfdId, makerTags, xxx, printValue),
+ TagInfo(0x0097, "ColorBalance2", "Color balance 2", nikon3IfdId, makerTags, undefined, printValue),
+ TagInfo(0x0098, "0x0098", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
+ TagInfo(0x0099, "NEFThumbnailSize", "NEF thumbnail size", nikon3IfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x009a, "0x009a", "Unknown", nikon3IfdId, makerTags, unsignedRational, printValue),
+ TagInfo(0x009b, "0x009b", "Unknown", nikon3IfdId, makerTags, unsignedShort, printValue),
+ TagInfo(0x009f, "0x009f", "Unknown", nikon3IfdId, makerTags, signedShort, printValue),
+ TagInfo(0x00a0, "SerialNumber", "Camera serial number", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x00a2, "0x00a2", "Unknown", nikon3IfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x00a3, "0x00a3", "Unknown", nikon3IfdId, makerTags, unsignedByte, printValue),
+ TagInfo(0x00a5, "0x00a5", "Unknown", nikon3IfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x00a6, "0x00a6", "Unknown", nikon3IfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x00a7, "ShutterCount", "Number of shots taken by camera", nikon3IfdId, makerTags, unsignedLong, printValue),
+ TagInfo(0x00a8, "0x00a8", "Unknown", nikon3IfdId, makerTags, undefined, printValue),
+ TagInfo(0x00a9, "ImageOptimization", "Image optimization", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x00aa, "Saturation", "Saturation", nikon3IfdId, makerTags, asciiString, printValue),
+ TagInfo(0x00ab, "VariProgram", "Vari program", nikon3IfdId, makerTags, asciiString, printValue),
+// TagInfo(0x0e00, "PrintIM", "Print image matching", nikon3IfdId, makerTags, xxx, printValue),
// End of list marker
- TagInfo(0xffff, "(UnknownNikon3MnTag)", "Unknown Nikon3MakerNote tag", nikon3IfdId, makerTags, printValue)
+ TagInfo(0xffff, "(UnknownNikon3MnTag)", "Unknown Nikon3MakerNote tag", nikon3IfdId, makerTags, invalidTypeId, printValue)
};
Nikon3MakerNote::Nikon3MakerNote(bool alloc)
diff --git a/src/sigmamn.cpp b/src/sigmamn.cpp
index 0b0264fe..c25d5c63 100644
--- a/src/sigmamn.cpp
+++ b/src/sigmamn.cpp
@@ -55,31 +55,31 @@ namespace Exiv2 {
// Sigma (Foveon) MakerNote Tag Info
const TagInfo SigmaMakerNote::tagInfo_[] = {
- TagInfo(0x0002, "SerialNumber", "Camera serial number", sigmaIfdId, makerTags, printValue),
- TagInfo(0x0003, "DriveMode", "Drive Mode", sigmaIfdId, makerTags, printValue),
- TagInfo(0x0004, "ResolutionMode", "Resolution Mode", sigmaIfdId, makerTags, printValue),
- TagInfo(0x0005, "AutofocusMode", "Autofocus mode", sigmaIfdId, makerTags, printValue),
- TagInfo(0x0006, "FocusSetting", "Focus setting", sigmaIfdId, makerTags, printValue),
- TagInfo(0x0007, "WhiteBalance", "White balance", sigmaIfdId, makerTags, printValue),
- TagInfo(0x0008, "ExposureMode", "Exposure mode", sigmaIfdId, makerTags, print0x0008),
- TagInfo(0x0009, "MeteringMode", "Metering mode", sigmaIfdId, makerTags, print0x0009),
- TagInfo(0x000a, "LensRange", "Lens focal length range", sigmaIfdId, makerTags, printValue),
- TagInfo(0x000b, "ColorSpace", "Color space", sigmaIfdId, makerTags, printValue),
- TagInfo(0x000c, "Exposure", "Exposure", sigmaIfdId, makerTags, printStripLabel),
- TagInfo(0x000d, "Contrast", "Contrast", sigmaIfdId, makerTags, printStripLabel),
- TagInfo(0x000e, "Shadow", "Shadow", sigmaIfdId, makerTags, printStripLabel),
- TagInfo(0x000f, "Highlight", "Highlight", sigmaIfdId, makerTags, printStripLabel),
- TagInfo(0x0010, "Saturation", "Saturation", sigmaIfdId, makerTags, printStripLabel),
- TagInfo(0x0011, "Sharpness", "Sharpness", sigmaIfdId, makerTags, printStripLabel),
- TagInfo(0x0012, "FillLight", "X3 Fill light", sigmaIfdId, makerTags, printStripLabel),
- TagInfo(0x0014, "ColorAdjustment", "Color adjustment", sigmaIfdId, makerTags, printStripLabel),
- TagInfo(0x0015, "AdjustmentMode", "Adjustment mode", sigmaIfdId, makerTags, printValue),
- TagInfo(0x0016, "Quality", "Quality", sigmaIfdId, makerTags, printStripLabel),
- TagInfo(0x0017, "Firmware", "Firmware", sigmaIfdId, makerTags, printValue),
- TagInfo(0x0018, "Software", "Software", sigmaIfdId, makerTags, printValue),
- TagInfo(0x0019, "AutoBracket", "Auto bracket", sigmaIfdId, makerTags, printValue),
+ TagInfo(0x0002, "SerialNumber", "Camera serial number", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0003, "DriveMode", "Drive Mode", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0004, "ResolutionMode", "Resolution Mode", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0005, "AutofocusMode", "Autofocus mode", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0006, "FocusSetting", "Focus setting", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0007, "WhiteBalance", "White balance", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0008, "ExposureMode", "Exposure mode", sigmaIfdId, makerTags, asciiString, print0x0008),
+ TagInfo(0x0009, "MeteringMode", "Metering mode", sigmaIfdId, makerTags, asciiString, print0x0009),
+ TagInfo(0x000a, "LensRange", "Lens focal length range", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x000b, "ColorSpace", "Color space", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x000c, "Exposure", "Exposure", sigmaIfdId, makerTags, asciiString, printStripLabel),
+ TagInfo(0x000d, "Contrast", "Contrast", sigmaIfdId, makerTags, asciiString, printStripLabel),
+ TagInfo(0x000e, "Shadow", "Shadow", sigmaIfdId, makerTags, asciiString, printStripLabel),
+ TagInfo(0x000f, "Highlight", "Highlight", sigmaIfdId, makerTags, asciiString, printStripLabel),
+ TagInfo(0x0010, "Saturation", "Saturation", sigmaIfdId, makerTags, asciiString, printStripLabel),
+ TagInfo(0x0011, "Sharpness", "Sharpness", sigmaIfdId, makerTags, asciiString, printStripLabel),
+ TagInfo(0x0012, "FillLight", "X3 Fill light", sigmaIfdId, makerTags, asciiString, printStripLabel),
+ TagInfo(0x0014, "ColorAdjustment", "Color adjustment", sigmaIfdId, makerTags, asciiString, printStripLabel),
+ TagInfo(0x0015, "AdjustmentMode", "Adjustment mode", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0016, "Quality", "Quality", sigmaIfdId, makerTags, asciiString, printStripLabel),
+ TagInfo(0x0017, "Firmware", "Firmware", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0018, "Software", "Software", sigmaIfdId, makerTags, asciiString, printValue),
+ TagInfo(0x0019, "AutoBracket", "Auto bracket", sigmaIfdId, makerTags, asciiString, printValue),
// End of list marker
- TagInfo(0xffff, "(UnknownSigmaMakerNoteTag)", "Unknown SigmaMakerNote tag", sigmaIfdId, makerTags, printValue)
+ TagInfo(0xffff, "(UnknownSigmaMakerNoteTag)", "Unknown SigmaMakerNote tag", sigmaIfdId, makerTags, invalidTypeId, printValue)
};
SigmaMakerNote::SigmaMakerNote(bool alloc)
diff --git a/src/tags.cpp b/src/tags.cpp
index b9371e78..6126fed9 100644
--- a/src/tags.cpp
+++ b/src/tags.cpp
@@ -106,164 +106,165 @@ namespace Exiv2 {
const char* desc,
IfdId ifdId,
SectionId sectionId,
+ TypeId typeId,
PrintFct printFct
)
: tag_(tag), name_(name), desc_(desc), ifdId_(ifdId),
- sectionId_(sectionId), printFct_(printFct)
+ sectionId_(sectionId), typeId_(typeId), printFct_(printFct)
{
}
// Base IFD Tags (IFD0 and IFD1)
static const TagInfo ifdTagInfo[] = {
- TagInfo(0x0100, "ImageWidth", "Image width", ifd0Id, imgStruct, printValue),
- TagInfo(0x0101, "ImageLength", "Image height", ifd0Id, imgStruct, printValue),
- TagInfo(0x0102, "BitsPerSample", "Number of bits per component", ifd0Id, imgStruct, printValue),
- TagInfo(0x0103, "Compression", "Compression scheme", ifd0Id, imgStruct, print0x0103),
- TagInfo(0x0106, "PhotometricInterpretation", "Pixel composition", ifd0Id, imgStruct, print0x0106),
- TagInfo(0x010e, "ImageDescription", "Image title", ifd0Id, otherTags, printValue),
- TagInfo(0x010f, "Make", "Manufacturer of image input equipment", ifd0Id, otherTags, printValue),
- TagInfo(0x0110, "Model", "Model of image input equipment", ifd0Id, otherTags, printValue),
- TagInfo(0x0111, "StripOffsets", "Image data location", ifd0Id, recOffset, printValue),
- TagInfo(0x0112, "Orientation", "Orientation of image", ifd0Id, imgStruct, print0x0112),
- TagInfo(0x0115, "SamplesPerPixel", "Number of components", ifd0Id, imgStruct, printValue),
- TagInfo(0x0116, "RowsPerStrip", "Number of rows per strip", ifd0Id, recOffset, printValue),
- TagInfo(0x0117, "StripByteCounts", "Bytes per compressed strip", ifd0Id, recOffset, printValue),
- TagInfo(0x011a, "XResolution", "Image resolution in width direction", ifd0Id, imgStruct, printLong),
- TagInfo(0x011b, "YResolution", "Image resolution in height direction", ifd0Id, imgStruct, printLong),
- TagInfo(0x011c, "PlanarConfiguration", "Image data arrangement", ifd0Id, imgStruct, printValue),
- TagInfo(0x0128, "ResolutionUnit", "Unit of X and Y resolution", ifd0Id, imgStruct, printUnit),
- TagInfo(0x012d, "TransferFunction", "Transfer function", ifd0Id, imgCharacter, printValue),
- TagInfo(0x0131, "Software", "Software used", ifd0Id, otherTags, printValue),
- TagInfo(0x0132, "DateTime", "File change date and time", ifd0Id, otherTags, printValue),
- TagInfo(0x013b, "Artist", "Person who created the image", ifd0Id, otherTags, printValue),
- TagInfo(0x013e, "WhitePoint", "White point chromaticity", ifd0Id, imgCharacter, printValue),
- TagInfo(0x013f, "PrimaryChromaticities", "Chromaticities of primaries", ifd0Id, imgCharacter, printValue),
- TagInfo(0x0201, "JPEGInterchangeFormat", "Offset to JPEG SOI", ifd0Id, recOffset, printValue),
- TagInfo(0x0202, "JPEGInterchangeFormatLength", "Bytes of JPEG data", ifd0Id, recOffset, printValue),
- TagInfo(0x0211, "YCbCrCoefficients", "Color space transformation matrix coefficients", ifd0Id, imgCharacter, printValue),
- TagInfo(0x0212, "YCbCrSubSampling", "Subsampling ratio of Y to C", ifd0Id, imgStruct, printValue),
- TagInfo(0x0213, "YCbCrPositioning", "Y and C positioning", ifd0Id, imgStruct, print0x0213),
- TagInfo(0x0214, "ReferenceBlackWhite", "Pair of black and white reference values", ifd0Id, imgCharacter, printValue),
- TagInfo(0x8298, "Copyright", "Copyright holder", ifd0Id, otherTags, print0x8298),
- TagInfo(0x8769, "ExifTag", "Exif IFD Pointer", ifd0Id, exifFormat, printValue),
- TagInfo(0x8825, "GPSTag", "GPSInfo IFD Pointer", ifd0Id, exifFormat, printValue),
+ TagInfo(0x0100, "ImageWidth", "Image width", ifd0Id, imgStruct, unsignedLong, printValue),
+ TagInfo(0x0101, "ImageLength", "Image height", ifd0Id, imgStruct, unsignedLong, printValue),
+ TagInfo(0x0102, "BitsPerSample", "Number of bits per component", ifd0Id, imgStruct, unsignedShort, printValue),
+ TagInfo(0x0103, "Compression", "Compression scheme", ifd0Id, imgStruct, unsignedShort, print0x0103),
+ TagInfo(0x0106, "PhotometricInterpretation", "Pixel composition", ifd0Id, imgStruct, unsignedShort, print0x0106),
+ TagInfo(0x010e, "ImageDescription", "Image title", ifd0Id, otherTags, asciiString, printValue),
+ TagInfo(0x010f, "Make", "Manufacturer of image input equipment", ifd0Id, otherTags, asciiString, printValue),
+ TagInfo(0x0110, "Model", "Model of image input equipment", ifd0Id, otherTags, asciiString, printValue),
+ TagInfo(0x0111, "StripOffsets", "Image data location", ifd0Id, recOffset, unsignedLong, printValue),
+ TagInfo(0x0112, "Orientation", "Orientation of image", ifd0Id, imgStruct, unsignedShort, print0x0112),
+ TagInfo(0x0115, "SamplesPerPixel", "Number of components", ifd0Id, imgStruct, unsignedShort, printValue),
+ TagInfo(0x0116, "RowsPerStrip", "Number of rows per strip", ifd0Id, recOffset, unsignedLong, printValue),
+ TagInfo(0x0117, "StripByteCounts", "Bytes per compressed strip", ifd0Id, recOffset, unsignedLong, printValue),
+ TagInfo(0x011a, "XResolution", "Image resolution in width direction", ifd0Id, imgStruct, unsignedRational, printLong),
+ TagInfo(0x011b, "YResolution", "Image resolution in height direction", ifd0Id, imgStruct, unsignedRational, printLong),
+ TagInfo(0x011c, "PlanarConfiguration", "Image data arrangement", ifd0Id, imgStruct, unsignedShort, printValue),
+ TagInfo(0x0128, "ResolutionUnit", "Unit of X and Y resolution", ifd0Id, imgStruct, unsignedShort, printUnit),
+ TagInfo(0x012d, "TransferFunction", "Transfer function", ifd0Id, imgCharacter, unsignedShort, printValue),
+ TagInfo(0x0131, "Software", "Software used", ifd0Id, otherTags, asciiString, printValue),
+ TagInfo(0x0132, "DateTime", "File change date and time", ifd0Id, otherTags, asciiString, printValue),
+ TagInfo(0x013b, "Artist", "Person who created the image", ifd0Id, otherTags, asciiString, printValue),
+ TagInfo(0x013e, "WhitePoint", "White point chromaticity", ifd0Id, imgCharacter, unsignedRational, printValue),
+ TagInfo(0x013f, "PrimaryChromaticities", "Chromaticities of primaries", ifd0Id, imgCharacter, unsignedRational, printValue),
+ TagInfo(0x0201, "JPEGInterchangeFormat", "Offset to JPEG SOI", ifd0Id, recOffset, unsignedLong, printValue),
+ TagInfo(0x0202, "JPEGInterchangeFormatLength", "Bytes of JPEG data", ifd0Id, recOffset, unsignedLong, printValue),
+ TagInfo(0x0211, "YCbCrCoefficients", "Color space transformation matrix coefficients", ifd0Id, imgCharacter, unsignedRational, printValue),
+ TagInfo(0x0212, "YCbCrSubSampling", "Subsampling ratio of Y to C", ifd0Id, imgStruct, unsignedShort, printValue),
+ TagInfo(0x0213, "YCbCrPositioning", "Y and C positioning", ifd0Id, imgStruct, unsignedShort, print0x0213),
+ TagInfo(0x0214, "ReferenceBlackWhite", "Pair of black and white reference values", ifd0Id, imgCharacter, unsignedRational, printValue),
+ TagInfo(0x8298, "Copyright", "Copyright holder", ifd0Id, otherTags, asciiString, print0x8298),
+ TagInfo(0x8769, "ExifTag", "Exif IFD Pointer", ifd0Id, exifFormat, unsignedLong, printValue),
+ TagInfo(0x8825, "GPSTag", "GPSInfo IFD Pointer", ifd0Id, exifFormat, unsignedLong, printValue),
// End of list marker
- TagInfo(0xffff, "(UnknownIfdTag)", "Unknown IFD tag", ifdIdNotSet, sectionIdNotSet, printValue)
+ TagInfo(0xffff, "(UnknownIfdTag)", "Unknown IFD tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
};
// Exif IFD Tags
static const TagInfo exifTagInfo[] = {
- TagInfo(0x829a, "ExposureTime", "Exposure time", exifIfdId, captureCond, print0x829a),
- TagInfo(0x829d, "FNumber", "F number", exifIfdId, captureCond, print0x829d),
- TagInfo(0x8822, "ExposureProgram", "Exposure program", exifIfdId, captureCond, print0x8822),
- TagInfo(0x8824, "SpectralSensitivity", "Spectral sensitivity", exifIfdId, captureCond, printValue),
- TagInfo(0x8827, "ISOSpeedRatings", "ISO speed ratings", exifIfdId, captureCond, print0x8827),
- TagInfo(0x8828, "OECF", "Optoelectric coefficient", exifIfdId, captureCond, printValue),
- TagInfo(0x9000, "ExifVersion", "Exif Version", exifIfdId, exifVersion, printValue),
- TagInfo(0x9003, "DateTimeOriginal", "Date and time original image was generated", exifIfdId, dateTime, printValue),
- TagInfo(0x9004, "DateTimeDigitized", "Date and time image was made digital data", exifIfdId, dateTime, printValue),
- TagInfo(0x9101, "ComponentsConfiguration", "Meaning of each component", exifIfdId, imgConfig, print0x9101),
- TagInfo(0x9102, "CompressedBitsPerPixel", "Image compression mode", exifIfdId, imgConfig, printFloat),
- TagInfo(0x9201, "ShutterSpeedValue", "Shutter speed", exifIfdId, captureCond, printFloat),
- TagInfo(0x9202, "ApertureValue", "Aperture", exifIfdId, captureCond, printFloat),
- TagInfo(0x9203, "BrightnessValue", "Brightness", exifIfdId, captureCond, printFloat),
- TagInfo(0x9204, "ExposureBiasValue", "Exposure bias", exifIfdId, captureCond, print0x9204),
- TagInfo(0x9205, "MaxApertureValue", "Maximum lens aperture", exifIfdId, captureCond, printFloat),
- TagInfo(0x9206, "SubjectDistance", "Subject distance", exifIfdId, captureCond, print0x9206),
- TagInfo(0x9207, "MeteringMode", "Metering mode", exifIfdId, captureCond, print0x9207),
- TagInfo(0x9208, "LightSource", "Light source", exifIfdId, captureCond, print0x9208),
- TagInfo(0x9209, "Flash", "Flash", exifIfdId, captureCond, print0x9209),
- TagInfo(0x920a, "FocalLength", "Lens focal length", exifIfdId, captureCond, print0x920a),
- TagInfo(0x9214, "SubjectArea", "Subject area", exifIfdId, captureCond, printValue),
- TagInfo(0x927c, "MakerNote", "Manufacturer notes", exifIfdId, userInfo, printValue),
- TagInfo(0x9286, "UserComment", "User comments", exifIfdId, userInfo, print0x9286),
- TagInfo(0x9290, "SubSecTime", "DateTime subseconds", exifIfdId, dateTime, printValue),
- TagInfo(0x9291, "SubSecTimeOriginal", "DateTimeOriginal subseconds", exifIfdId, dateTime, printValue),
- TagInfo(0x9292, "SubSecTimeDigitized", "DateTimeDigitized subseconds", exifIfdId, dateTime, printValue),
- TagInfo(0xa000, "FlashpixVersion", "Supported Flashpix version", exifIfdId, exifVersion, printValue),
- TagInfo(0xa001, "ColorSpace", "Color space information", exifIfdId, imgCharacter, print0xa001),
- TagInfo(0xa002, "PixelXDimension", "Valid image width", exifIfdId, imgConfig, printValue),
- TagInfo(0xa003, "PixelYDimension", "Valid image height", exifIfdId, imgConfig, printValue),
- TagInfo(0xa004, "RelatedSoundFile", "Related audio file", exifIfdId, relatedFile, printValue),
- TagInfo(0xa005, "InteroperabilityTag", "Interoperability IFD Pointer", exifIfdId, exifFormat, printValue),
- TagInfo(0xa20b, "FlashEnergy", "Flash energy", exifIfdId, captureCond, printValue),
- TagInfo(0xa20c, "SpatialFrequencyResponse", "Spatial frequency response", exifIfdId, captureCond, printValue),
- TagInfo(0xa20e, "FocalPlaneXResolution", "Focal plane X resolution", exifIfdId, captureCond, printFloat),
- TagInfo(0xa20f, "FocalPlaneYResolution", "Focal plane Y resolution", exifIfdId, captureCond, printFloat),
- TagInfo(0xa210, "FocalPlaneResolutionUnit", "Focal plane resolution unit", exifIfdId, captureCond, printUnit),
- TagInfo(0xa214, "SubjectLocation", "Subject location", exifIfdId, captureCond, printValue),
- TagInfo(0xa215, "ExposureIndex", "Exposure index", exifIfdId, captureCond, printValue),
- TagInfo(0xa217, "SensingMethod", "Sensing method", exifIfdId, captureCond, print0xa217),
- TagInfo(0xa300, "FileSource", "File source", exifIfdId, captureCond, print0xa300),
- TagInfo(0xa301, "SceneType", "Scene type", exifIfdId, captureCond, print0xa301),
- TagInfo(0xa302, "CFAPattern", "CFA pattern", exifIfdId, captureCond, printValue),
- TagInfo(0xa401, "CustomRendered", "Custom image processing", exifIfdId, captureCond, printValue),
- TagInfo(0xa402, "ExposureMode", "Exposure mode", exifIfdId, captureCond, print0xa402),
- TagInfo(0xa403, "WhiteBalance", "White balance", exifIfdId, captureCond, print0xa403),
- TagInfo(0xa404, "DigitalZoomRatio", "Digital zoom ratio", exifIfdId, captureCond, print0xa404),
- TagInfo(0xa405, "FocalLengthIn35mmFilm", "Focal length in 35 mm film", exifIfdId, captureCond, print0xa405),
- TagInfo(0xa406, "SceneCaptureType", "Scene capture type", exifIfdId, captureCond, print0xa406),
- TagInfo(0xa407, "GainControl", "Gain control", exifIfdId, captureCond, print0xa407),
- TagInfo(0xa408, "Contrast", "Contrast", exifIfdId, captureCond, print0xa408),
- TagInfo(0xa409, "Saturation", "Saturation", exifIfdId, captureCond, print0xa409),
- TagInfo(0xa40a, "Sharpness", "Sharpness", exifIfdId, captureCond, print0xa40a),
- TagInfo(0xa40b, "DeviceSettingDescription", "Device settings description", exifIfdId, captureCond, printValue),
- TagInfo(0xa40c, "SubjectDistanceRange", "Subject distance range", exifIfdId, captureCond, print0xa40c),
- TagInfo(0xa420, "ImageUniqueID", "Unique image ID", exifIfdId, otherTags, printValue),
+ TagInfo(0x829a, "ExposureTime", "Exposure time", exifIfdId, captureCond, unsignedRational, print0x829a),
+ TagInfo(0x829d, "FNumber", "F number", exifIfdId, captureCond, unsignedRational, print0x829d),
+ TagInfo(0x8822, "ExposureProgram", "Exposure program", exifIfdId, captureCond, unsignedShort, print0x8822),
+ TagInfo(0x8824, "SpectralSensitivity", "Spectral sensitivity", exifIfdId, captureCond, asciiString, printValue),
+ TagInfo(0x8827, "ISOSpeedRatings", "ISO speed ratings", exifIfdId, captureCond, unsignedShort, print0x8827),
+ TagInfo(0x8828, "OECF", "Optoelectric coefficient", exifIfdId, captureCond, undefined, printValue),
+ TagInfo(0x9000, "ExifVersion", "Exif Version", exifIfdId, exifVersion, undefined, printValue),
+ TagInfo(0x9003, "DateTimeOriginal", "Date and time original image was generated", exifIfdId, dateTime, asciiString, printValue),
+ TagInfo(0x9004, "DateTimeDigitized", "Date and time image was made digital data", exifIfdId, dateTime, asciiString, printValue),
+ TagInfo(0x9101, "ComponentsConfiguration", "Meaning of each component", exifIfdId, imgConfig, undefined, print0x9101),
+ TagInfo(0x9102, "CompressedBitsPerPixel", "Image compression mode", exifIfdId, imgConfig, unsignedRational, printFloat),
+ TagInfo(0x9201, "ShutterSpeedValue", "Shutter speed", exifIfdId, captureCond, signedRational, printFloat),
+ TagInfo(0x9202, "ApertureValue", "Aperture", exifIfdId, captureCond, unsignedRational, printFloat),
+ TagInfo(0x9203, "BrightnessValue", "Brightness", exifIfdId, captureCond, signedRational, printFloat),
+ TagInfo(0x9204, "ExposureBiasValue", "Exposure bias", exifIfdId, captureCond, signedRational, print0x9204),
+ TagInfo(0x9205, "MaxApertureValue", "Maximum lens aperture", exifIfdId, captureCond, unsignedRational, printFloat),
+ TagInfo(0x9206, "SubjectDistance", "Subject distance", exifIfdId, captureCond, unsignedRational, print0x9206),
+ TagInfo(0x9207, "MeteringMode", "Metering mode", exifIfdId, captureCond, unsignedShort, print0x9207),
+ TagInfo(0x9208, "LightSource", "Light source", exifIfdId, captureCond, unsignedShort, print0x9208),
+ TagInfo(0x9209, "Flash", "Flash", exifIfdId, captureCond, unsignedShort, print0x9209),
+ TagInfo(0x920a, "FocalLength", "Lens focal length", exifIfdId, captureCond, unsignedRational, print0x920a),
+ TagInfo(0x9214, "SubjectArea", "Subject area", exifIfdId, captureCond, unsignedShort, printValue),
+ TagInfo(0x927c, "MakerNote", "Manufacturer notes", exifIfdId, userInfo, undefined, printValue),
+ TagInfo(0x9286, "UserComment", "User comments", exifIfdId, userInfo, comment, print0x9286),
+ TagInfo(0x9290, "SubSecTime", "DateTime subseconds", exifIfdId, dateTime, asciiString, printValue),
+ TagInfo(0x9291, "SubSecTimeOriginal", "DateTimeOriginal subseconds", exifIfdId, dateTime, asciiString, printValue),
+ TagInfo(0x9292, "SubSecTimeDigitized", "DateTimeDigitized subseconds", exifIfdId, dateTime, asciiString, printValue),
+ TagInfo(0xa000, "FlashpixVersion", "Supported Flashpix version", exifIfdId, exifVersion, undefined, printValue),
+ TagInfo(0xa001, "ColorSpace", "Color space information", exifIfdId, imgCharacter, unsignedShort, print0xa001),
+ TagInfo(0xa002, "PixelXDimension", "Valid image width", exifIfdId, imgConfig, unsignedLong, printValue),
+ TagInfo(0xa003, "PixelYDimension", "Valid image height", exifIfdId, imgConfig, unsignedLong, printValue),
+ TagInfo(0xa004, "RelatedSoundFile", "Related audio file", exifIfdId, relatedFile, asciiString, printValue),
+ TagInfo(0xa005, "InteroperabilityTag", "Interoperability IFD Pointer", exifIfdId, exifFormat, unsignedLong, printValue),
+ TagInfo(0xa20b, "FlashEnergy", "Flash energy", exifIfdId, captureCond, unsignedRational, printValue),
+ TagInfo(0xa20c, "SpatialFrequencyResponse", "Spatial frequency response", exifIfdId, captureCond, undefined, printValue),
+ TagInfo(0xa20e, "FocalPlaneXResolution", "Focal plane X resolution", exifIfdId, captureCond, unsignedRational, printFloat),
+ TagInfo(0xa20f, "FocalPlaneYResolution", "Focal plane Y resolution", exifIfdId, captureCond, unsignedRational, printFloat),
+ TagInfo(0xa210, "FocalPlaneResolutionUnit", "Focal plane resolution unit", exifIfdId, captureCond, unsignedShort, printUnit),
+ TagInfo(0xa214, "SubjectLocation", "Subject location", exifIfdId, captureCond, unsignedShort, printValue),
+ TagInfo(0xa215, "ExposureIndex", "Exposure index", exifIfdId, captureCond, unsignedRational, printValue),
+ TagInfo(0xa217, "SensingMethod", "Sensing method", exifIfdId, captureCond, unsignedShort, print0xa217),
+ TagInfo(0xa300, "FileSource", "File source", exifIfdId, captureCond, undefined, print0xa300),
+ TagInfo(0xa301, "SceneType", "Scene type", exifIfdId, captureCond, undefined, print0xa301),
+ TagInfo(0xa302, "CFAPattern", "CFA pattern", exifIfdId, captureCond, undefined, printValue),
+ TagInfo(0xa401, "CustomRendered", "Custom image processing", exifIfdId, captureCond, unsignedShort, printValue),
+ TagInfo(0xa402, "ExposureMode", "Exposure mode", exifIfdId, captureCond, unsignedShort, print0xa402),
+ TagInfo(0xa403, "WhiteBalance", "White balance", exifIfdId, captureCond, unsignedShort, print0xa403),
+ TagInfo(0xa404, "DigitalZoomRatio", "Digital zoom ratio", exifIfdId, captureCond, unsignedRational, print0xa404),
+ TagInfo(0xa405, "FocalLengthIn35mmFilm", "Focal length in 35 mm film", exifIfdId, captureCond, unsignedShort, print0xa405),
+ TagInfo(0xa406, "SceneCaptureType", "Scene capture type", exifIfdId, captureCond, unsignedShort, print0xa406),
+ TagInfo(0xa407, "GainControl", "Gain control", exifIfdId, captureCond, unsignedRational, print0xa407),
+ TagInfo(0xa408, "Contrast", "Contrast", exifIfdId, captureCond, unsignedShort, print0xa408),
+ TagInfo(0xa409, "Saturation", "Saturation", exifIfdId, captureCond, unsignedShort, print0xa409),
+ TagInfo(0xa40a, "Sharpness", "Sharpness", exifIfdId, captureCond, unsignedShort, print0xa40a),
+ TagInfo(0xa40b, "DeviceSettingDescription", "Device settings description", exifIfdId, captureCond, undefined, printValue),
+ TagInfo(0xa40c, "SubjectDistanceRange", "Subject distance range", exifIfdId, captureCond, unsignedShort, print0xa40c),
+ TagInfo(0xa420, "ImageUniqueID", "Unique image ID", exifIfdId, otherTags, asciiString, printValue),
// End of list marker
- TagInfo(0xffff, "(UnknownExifTag)", "Unknown Exif tag", ifdIdNotSet, sectionIdNotSet, printValue)
+ TagInfo(0xffff, "(UnknownExifTag)", "Unknown Exif tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
};
// GPS Info Tags
static const TagInfo gpsTagInfo[] = {
- TagInfo(0x0000, "GPSVersionID", "GPS tag version", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0001, "GPSLatitudeRef", "North or South Latitude", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0002, "GPSLatitude", "Latitude", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0003, "GPSLongitudeRef", "East or West Longitude", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0004, "GPSLongitude", "Longitude", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0005, "GPSAltitudeRef", "Altitude reference", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0006, "GPSAltitude", "Altitude", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0007, "GPSTimeStamp", "GPS time (atomic clock)", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0008, "GPSSatellites", "GPS satellites used for measurement", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0009, "GPSStatus", "GPS receiver status", gpsIfdId, gpsTags, printValue),
- TagInfo(0x000a, "GPSMeasureMode", "GPS measurement mode", gpsIfdId, gpsTags, printValue),
- TagInfo(0x000b, "GPSDOP", "Measurement precision", gpsIfdId, gpsTags, printValue),
- TagInfo(0x000c, "GPSSpeedRef", "Speed unit", gpsIfdId, gpsTags, printValue),
- TagInfo(0x000d, "GPSSpeed", "Speed of GPS receiver", gpsIfdId, gpsTags, printValue),
- TagInfo(0x000e, "GPSTrackRef", "Reference for direction of movement", gpsIfdId, gpsTags, printValue),
- TagInfo(0x000f, "GPSTrack", "Direction of movement", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0010, "GPSImgDirectionRef", "Reference for direction of image", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0011, "GPSImgDirection", "Direction of image", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0012, "GPSMapDatum", "Geodetic survey data used", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0013, "GPSDestLatitudeRef", "Reference for latitude of destination", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0014, "GPSDestLatitude", "Latitude of destination", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0015, "GPSDestLongitudeRef", "Reference for longitude of destination", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0016, "GPSDestLongitude", "Longitude of destination", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0017, "GPSDestBearingRef", "Reference for bearing of destination", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0018, "GPSDestBearing", "Bearing of destination", gpsIfdId, gpsTags, printValue),
- TagInfo(0x0019, "GPSDestDistanceRef", "Reference for distance to destination", gpsIfdId, gpsTags, printValue),
- TagInfo(0x001a, "GPSDestDistance", "Distance to destination", gpsIfdId, gpsTags, printValue),
- TagInfo(0x001b, "GPSProcessingMethod", "Name of GPS processing method", gpsIfdId, gpsTags, printValue),
- TagInfo(0x001c, "GPSAreaInformation", "Name of GPS area", gpsIfdId, gpsTags, printValue),
- TagInfo(0x001d, "GPSDateStamp", "GPS date", gpsIfdId, gpsTags, printValue),
- TagInfo(0x001e, "GPSDifferential", "GPS differential correction", gpsIfdId, gpsTags, printValue),
+ TagInfo(0x0000, "GPSVersionID", "GPS tag version", gpsIfdId, gpsTags, unsignedByte, printValue),
+ TagInfo(0x0001, "GPSLatitudeRef", "North or South Latitude", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x0002, "GPSLatitude", "Latitude", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x0003, "GPSLongitudeRef", "East or West Longitude", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x0004, "GPSLongitude", "Longitude", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x0005, "GPSAltitudeRef", "Altitude reference", gpsIfdId, gpsTags, unsignedByte, printValue),
+ TagInfo(0x0006, "GPSAltitude", "Altitude", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x0007, "GPSTimeStamp", "GPS time (atomic clock)", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x0008, "GPSSatellites", "GPS satellites used for measurement", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x0009, "GPSStatus", "GPS receiver status", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x000a, "GPSMeasureMode", "GPS measurement mode", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x000b, "GPSDOP", "Measurement precision", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x000c, "GPSSpeedRef", "Speed unit", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x000d, "GPSSpeed", "Speed of GPS receiver", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x000e, "GPSTrackRef", "Reference for direction of movement", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x000f, "GPSTrack", "Direction of movement", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x0010, "GPSImgDirectionRef", "Reference for direction of image", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x0011, "GPSImgDirection", "Direction of image", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x0012, "GPSMapDatum", "Geodetic survey data used", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x0013, "GPSDestLatitudeRef", "Reference for latitude of destination", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x0014, "GPSDestLatitude", "Latitude of destination", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x0015, "GPSDestLongitudeRef", "Reference for longitude of destination", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x0016, "GPSDestLongitude", "Longitude of destination", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x0017, "GPSDestBearingRef", "Reference for bearing of destination", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x0018, "GPSDestBearing", "Bearing of destination", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x0019, "GPSDestDistanceRef", "Reference for distance to destination", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x001a, "GPSDestDistance", "Distance to destination", gpsIfdId, gpsTags, unsignedRational, printValue),
+ TagInfo(0x001b, "GPSProcessingMethod", "Name of GPS processing method", gpsIfdId, gpsTags, undefined, printValue),
+ TagInfo(0x001c, "GPSAreaInformation", "Name of GPS area", gpsIfdId, gpsTags, undefined, printValue),
+ TagInfo(0x001d, "GPSDateStamp", "GPS date", gpsIfdId, gpsTags, asciiString, printValue),
+ TagInfo(0x001e, "GPSDifferential", "GPS differential correction", gpsIfdId, gpsTags, unsignedShort, printValue),
// End of list marker
- TagInfo(0xffff, "(UnknownGpsTag)", "Unknown GPSInfo tag", ifdIdNotSet, sectionIdNotSet, printValue)
+ TagInfo(0xffff, "(UnknownGpsTag)", "Unknown GPSInfo tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
};
// Exif Interoperability IFD Tags
static const TagInfo iopTagInfo[] = {
- TagInfo(0x0001, "InteroperabilityIndex", "Interoperability Identification", iopIfdId, iopTags, printValue),
- TagInfo(0x0002, "InteroperabilityVersion", "Interoperability version", iopIfdId, iopTags, printValue),
- TagInfo(0x1000, "RelatedImageFileFormat", "File format of image file", iopIfdId, iopTags, printValue),
- TagInfo(0x1001, "RelatedImageWidth", "Image width", iopIfdId, iopTags, printValue),
- TagInfo(0x1002, "RelatedImageLength", "Image height", iopIfdId, iopTags, printValue),
+ TagInfo(0x0001, "InteroperabilityIndex", "Interoperability Identification", iopIfdId, iopTags, asciiString, printValue),
+ TagInfo(0x0002, "InteroperabilityVersion", "Interoperability version", iopIfdId, iopTags, undefined, printValue),
+ TagInfo(0x1000, "RelatedImageFileFormat", "File format of image file", iopIfdId, iopTags, asciiString, printValue),
+ TagInfo(0x1001, "RelatedImageWidth", "Image width", iopIfdId, iopTags, unsignedLong, printValue),
+ TagInfo(0x1002, "RelatedImageLength", "Image height", iopIfdId, iopTags, unsignedLong, printValue),
// End of list marker
- TagInfo(0xffff, "(UnknownIopTag)", "Unknown Exif Interoperability tag", ifdIdNotSet, sectionIdNotSet, printValue)
+ TagInfo(0xffff, "(UnknownIopTag)", "Unknown Exif Interoperability tag", ifdIdNotSet, sectionIdNotSet, invalidTypeId, printValue)
};
// Unknown Tag
- static const TagInfo unknownTag(0xffff, "Unknown tag", "Unknown tag", ifdIdNotSet, sectionIdNotSet, printValue);
+ static const TagInfo unknownTag(0xffff, "Unknown tag", "Unknown tag", ifdIdNotSet, sectionIdNotSet, asciiString, printValue);
// Tag lookup lists with tag names, desc and where they (preferably) belong to;
// this is an array with pointers to one list per IFD. The IfdId is used as the
@@ -385,7 +386,7 @@ namespace Exiv2 {
}
if (isMakerIfd(ifdId)) {
const TagInfo* tagInfo = makerTagInfo(tag, ifdId);
- if (tagInfo != 0) return sectionInfo_[tagInfo->sectionId_].name_;
+ if (tagInfo != 0) return sectionInfo_[tagInfo->sectionId_].name_;
}
return "";
} // ExifTags::sectionName
@@ -400,7 +401,7 @@ namespace Exiv2 {
}
if (isMakerIfd(ifdId)) {
const TagInfo* tagInfo = makerTagInfo(tag, ifdId);
- if (tagInfo != 0) return sectionInfo_[tagInfo->sectionId_].desc_;
+ if (tagInfo != 0) return sectionInfo_[tagInfo->sectionId_].desc_;
}
return "";
} // ExifTags::sectionDesc
@@ -419,9 +420,6 @@ namespace Exiv2 {
}
}
if (isMakerIfd(ifdId)) {
-
-
-
const TagInfo* tagInfo = makerTagInfo(tagName, ifdId);
if (tagInfo != 0) tag = tagInfo->tag_;
}
@@ -468,6 +466,19 @@ namespace Exiv2 {
return SectionId(i);
}
+ TypeId ExifTags::tagType(uint16_t tag, IfdId ifdId)
+ {
+ if (isExifIfd(ifdId)) {
+ int idx = tagInfoIdx(tag, ifdId);
+ if (idx != -1) return tagInfos_[ifdId][idx].typeId_;
+ }
+ if (isMakerIfd(ifdId)) {
+ const TagInfo* tagInfo = makerTagInfo(tag, ifdId);
+ if (tagInfo != 0) return tagInfo->typeId_;
+ }
+ return unknownTag.typeId_;
+ }
+
std::ostream& ExifTags::printTag(std::ostream& os,
uint16_t tag,
IfdId ifdId,
@@ -659,6 +670,8 @@ namespace Exiv2 {
<< std::right << std::hex << ti.tag_ << ", "
<< ExifTags::ifdName(ti.ifdId_) << ", "
<< exifKey.key() << ", "
+ << TypeInfo::typeName(
+ ExifTags::tagType(ti.tag_, ti.ifdId_)) << ", "
<< ExifTags::tagDesc(ti.tag_, ti.ifdId_);
}
diff --git a/src/tags.hpp b/src/tags.hpp
index 703d0527..76b2a041 100644
--- a/src/tags.hpp
+++ b/src/tags.hpp
@@ -97,6 +97,7 @@ namespace Exiv2 {
const char* desc,
IfdId ifdId,
SectionId sectionId,
+ TypeId typeId,
PrintFct printFct
);
uint16_t tag_; //!< Tag
@@ -104,6 +105,7 @@ namespace Exiv2 {
const char* desc_; //!< Short tag description
IfdId ifdId_; //!< Link to the (prefered) IFD
SectionId sectionId_; //!< Section id
+ TypeId typeId_; //!< Type id
PrintFct printFct_; //!< Pointer to tag print function
}; // struct TagInfo
@@ -177,6 +179,8 @@ namespace Exiv2 {
static const char* sectionDesc(uint16_t tag, IfdId ifdId);
//! Return the section id for a section name
static SectionId sectionId(const std::string& sectionName);
+ //! Return the type for tag and IFD id
+ static TypeId tagType(uint16_t tag, IfdId ifdId);
//! Interpret and print the value of an Exif tag
static std::ostream& printTag(std::ostream& os,
uint16_t tag,
@@ -190,7 +194,6 @@ namespace Exiv2 {
static void registerBaseTagInfo(IfdId ifdId);
//! Register an %IfdId and %TagInfo list for a makernote
static void registerMakerTagInfo(IfdId ifdId, const TagInfo* tagInfo);
-
/*!
@brief Return true if \em ifdId is an %Ifd Id which is registered
as a makernote %Ifd id. Note: Calling this function with
diff --git a/src/write2-test.cpp b/src/write2-test.cpp
index e8ccefe6..32fe400c 100644
--- a/src/write2-test.cpp
+++ b/src/write2-test.cpp
@@ -109,13 +109,13 @@ try {
std::cout <<"\n----- One IOP tag\n";
Exiv2::ExifData ed3;
- ed3["Exif.Iop.InteroperabilityVersion"] = "Test 3";
+ ed3["Exif.Iop.InteroperabilityIndex"] = "Test 3";
write(file, ed3);
print(file);
std::cout <<"\n----- One GPS tag\n";
Exiv2::ExifData ed4;
- ed4["Exif.GPSInfo.GPSVersionID"] = "Test 4";
+ ed4["Exif.GPSInfo.GPSVersionID"] = "19 20";
write(file, ed4);
print(file);
@@ -127,7 +127,7 @@ try {
std::cout <<"\n----- One IOP and one IFD1 tag\n";
Exiv2::ExifData ed6;
- ed6["Exif.Iop.InteroperabilityVersion"] = "Test 6 Iop tag";
+ ed6["Exif.Iop.InteroperabilityIndex"] = "Test 6 Iop tag";
ed6["Exif.Thumbnail.Artist"] = "Test 6 Ifd1 tag";
write(file, ed6);
print(file);
diff --git a/test/data/exifdata-test.out b/test/data/exifdata-test.out
index c2897541..0211058d 100644
--- a/test/data/exifdata-test.out
+++ b/test/data/exifdata-test.out
@@ -285,7 +285,7 @@ Exif.Iop.InteroperabilityVersion 0x0002 Iop Undefined 4
Exif.Iop.RelatedImageWidth 0x1001 Iop Short 1 2272
Exif.Iop.RelatedImageLength 0x1002 Iop Short 1 1704
Exif.Thumbnail.Compression 0x0103 IFD1 Short 1 6
-Exif.Thumbnail.Orientation 0x0112 IFD1 Ascii 10 2 3 4 5 6
+Exif.Thumbnail.Orientation 0x0112 IFD1 Short 5 2 3 4 5 6
Exif.Thumbnail.XResolution 0x011a IFD1 Rational 1 180/1
Exif.Thumbnail.YResolution 0x011b IFD1 Rational 1 180/1
Exif.Thumbnail.ResolutionUnit 0x0128 IFD1 Short 1 2
@@ -621,7 +621,7 @@ Exif.Nikon3.VariProgram 0x00ab Makernote Ascii 16
Exif.Iop.InteroperabilityIndex 0x0001 Iop Ascii 5 1234
Exif.Iop.InteroperabilityVersion 0x0002 Iop Undefined 4 48 49 48 48
Exif.Thumbnail.Compression 0x0103 IFD1 Short 1 6
-Exif.Thumbnail.Orientation 0x0112 IFD1 Ascii 10 2 3 4 5 6
+Exif.Thumbnail.Orientation 0x0112 IFD1 Short 5 2 3 4 5 6
Exif.Thumbnail.XResolution 0x011a IFD1 Rational 1 300/1
Exif.Thumbnail.YResolution 0x011b IFD1 Rational 1 300/1
Exif.Thumbnail.ResolutionUnit 0x0128 IFD1 Short 1 2
diff --git a/test/data/exiv2-test.out b/test/data/exiv2-test.out
index 0836cf3b..1ab1c0dd 100644
--- a/test/data/exiv2-test.out
+++ b/test/data/exiv2-test.out
@@ -461,7 +461,7 @@ File 3/9: 20000506_020544.jpg
0x0085 Makernote FocusDistance Unknown
0x0086 Makernote DigitalZoom 1.0x
0x0088 Makernote AFFocusPos Left
-0x0010 Makernote 0x0010 1 45 0 128 1 76 0 0 0 0 255 1 0 0 0 0 2 74 42 160 0 0 0 0 2 183 0 0 31 8 0 0 21 202 0 0 33 124 0 0 33 124 0 0 31 6 13 132 0 74 0 0 0 0 9 181 9 74 8 109 7 54 208 1 11 122 0 0 0 0 45 33 21 0 0 0 32 0 0 0 0 0 0 0 0 0 68 27 0 0 74 3 23 207 9 30 59 31 0 71 0 0 19 21 18 18 21 24 0 0 100 0 25 76 0 0 0 1 255 240 101 68 0 0 0 2 0 0 0 0 15 3 194 141 1 13 18 34 0 0 81 90 0 246 1 43 48 32 18 7 40 16 78 72 11 122 0 0 117 252 235 98 11 16 6 6 0 100 0 216 18 52 67 33
+0x0010 Makernote DataDump 1 45 0 128 1 76 0 0 0 0 255 1 0 0 0 0 2 74 42 160 0 0 0 0 2 183 0 0 31 8 0 0 21 202 0 0 33 124 0 0 33 124 0 0 31 6 13 132 0 74 0 0 0 0 9 181 9 74 8 109 7 54 208 1 11 122 0 0 0 0 45 33 21 0 0 0 32 0 0 0 0 0 0 0 0 0 68 27 0 0 74 3 23 207 9 30 59 31 0 71 0 0 19 21 18 18 21 24 0 0 100 0 25 76 0 0 0 1 255 240 101 68 0 0 0 2 0 0 0 0 15 3 194 141 1 13 18 34 0 0 81 90 0 246 1 43 48 32 18 7 40 16 78 72 11 122 0 0 117 252 235 98 11 16 6 6 0 100 0 216 18 52 67 33
0x0001 Iop InteroperabilityIndex R98
0x0002 Iop InteroperabilityVersion 48 49 48 48
0x0103 IFD1 Compression JPEG
diff --git a/test/data/write2-test.out b/test/data/write2-test.out
index e202d06d..cc6d0714 100644
--- a/test/data/write2-test.out
+++ b/test/data/write2-test.out
@@ -48,11 +48,11 @@ Exif.Nikon3.Quality 0x0004 Makernote Ascii 28
----- One IOP tag
Exif.Image.ExifTag 0x8769 IFD0 Long 1 26
Exif.Photo.InteroperabilityTag 0xa005 Exif Long 1 44
-Exif.Iop.InteroperabilityVersion 0x0002 Iop Ascii 7 Test 3
+Exif.Iop.InteroperabilityIndex 0x0001 Iop Ascii 7 Test 3
----- One GPS tag
Exif.Image.GPSTag 0x8825 IFD0 Long 1 26
-Exif.GPSInfo.GPSVersionID 0x0000 GPSInfo Ascii 7 Test 4
+Exif.GPSInfo.GPSVersionID 0x0000 GPSInfo Byte 2 19 20
----- One IFD1 tag
Exif.Thumbnail.Artist 0x013b IFD1 Ascii 7 Test 5
@@ -60,7 +60,7 @@ Exif.Thumbnail.Artist 0x013b IFD1 Ascii 7
----- One IOP and one IFD1 tag
Exif.Image.ExifTag 0x8769 IFD0 Long 1 26
Exif.Photo.InteroperabilityTag 0xa005 Exif Long 1 44
-Exif.Iop.InteroperabilityVersion 0x0002 Iop Ascii 15 Test 6 Iop tag
+Exif.Iop.InteroperabilityIndex 0x0001 Iop Ascii 15 Test 6 Iop tag
Exif.Thumbnail.Artist 0x013b IFD1 Ascii 16 Test 6 Ifd1 tag
----- One IFD0 and one IFD1 tag