From e859809dae2e8f12f6f06d12ba46d392e514a509 Mon Sep 17 00:00:00 2001
From: Andreas Huggel
Date: Thu, 12 Aug 2004 08:18:27 +0000
Subject: [PATCH] Updated for IPTC support
---
doc/exiv2.dot | 5 +-
doc/exiv2.gif | Bin 5143 -> 25003 bytes
doc/getting-started.html | 45 +-
doc/index.html | 2 +-
doc/iptc.xml | 866 +++++++++++++++++++++++++++++++++++++++
doc/iptc.xsl | 137 +++++++
doc/makernote.html | 4 +-
doc/tags.xsl | 4 +-
8 files changed, 1038 insertions(+), 25 deletions(-)
create mode 100644 doc/iptc.xml
create mode 100644 doc/iptc.xsl
diff --git a/doc/exiv2.dot b/doc/exiv2.dot
index bbe9a117..fb509c78 100644
--- a/doc/exiv2.dot
+++ b/doc/exiv2.dot
@@ -3,7 +3,7 @@
# Brief Dot file for a graph showing the component dependencies
# of the Exiv2 library. Run the following command to get the image:
# $ dot -Tgif -oexiv2.gif exiv2.dot
-# Version $Name: $ $Revision: 1.3 $
+# Version $Name: $ $Revision: 1.4 $
# Author Andreas Huggel (ahu)
# ahuggel@gmx.net
# Date 18-Feb-04, ahu: created
@@ -15,9 +15,8 @@ L1 [shape=plaintext] ;
L2 [shape=plaintext] ;
L3 [shape=plaintext] ;
L4 [shape=plaintext] ;
-L5 [shape=plaintext] ;
-"L5" -> "L4" -> "L3" -> "L2" -> "L1" [style=invis] ;
+"L4" -> "L3" -> "L2" -> "L1" [style=invis] ;
"exif" [shape=box] ;
"iptc" [shape=box] ;
diff --git a/doc/exiv2.gif b/doc/exiv2.gif
index c1ba777b664bcb010a92969c60e3f08107e7a989..7701ad402586dc2290dcaaee11a9f1807edfc1e5 100644
GIT binary patch
literal 25003
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
Old;v+Nq4HrwEqi#*@|EQ
delta 5039
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
- Exiv2 - Exif metadata manipulation library and tools
+ Exiv2 - Exif and IPTC metadata manipulation library and tools
@@ -19,29 +19,39 @@ the members of the Exiv2 namespace.
-Exiv2::ExifData is
-the top-level class of the Exiv2 library. It has a container of Exif
-metadata and defines related methods. The container holds
+
Exiv2::ExifData
+and Exiv2::IptcData
+are the top-level classes of the Exiv2 library. Both have a container
+of Exif and IPTC metadata, respectively, and define related methods to
+access and manipulate the metadata. The containers hold
Exiv2::Metadatum
objects. Class Exiv2::Metadatum defines methods to access the
-information of one Exif tag. It models the tag data as a key and value
-pair. A key is just a well-formed string. The abstract base class
-Exiv2::Value defines the
-interface to access tag information, from which concrete values are
+information of one Exif tag or IPTC dataset. It models the tag data as
+a key and value pair.
+The abstract base class
+Exiv2::Key defines the
+interface for a key. Concrete keys implement Exif and IPTC keys.
+The abstract base class
+Exiv2::Value defines
+the interface to access tag information, from which concrete values are
derived. The actual value used in a metadatum depends on the type of
-the Exif tag. It is usually determined when the Exif metadata is read
-from an image. It is also possible to manually create a Value and together
-with a key add it to an ExifData container.
+the Exif tag or IPTC dataset. It is usually determined when the Exif metadata
+is read from an image. It is also possible to manually create a Value and
+together with a key add it to an ExifData or IptcData container.
-Two simple examples demonstrate the basic use of Exiv2
+
Several simple examples demonstrate the basic use of Exiv2
functionality: Exifprint
-shows how the Exif data of an image can be read and written to the screen.
+shows how the Exif data of an image can be read and written to the screen.
+Iptcprint is a similar
+example to print IPTC data.
Addmoddel shows how to
-add, modify and delete Exif metadata. For more real-world code have a look
-at the implementation of the different actions of the Exiv2 utility
-(actions.cpp).
+add, modify and delete Exif metadata.
+Exifcomment shows how to
+set the exif comment of an image.
+For more real-world code have a look at the implementation of the
+different actions of the Exiv2 utility (actions.cpp).
@@ -75,7 +85,8 @@ same as the basenames of their source files. Each component has its
own header and source files.
-
+
+
diff --git a/doc/index.html b/doc/index.html
index b6f44a1f..96403dc0 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -1,7 +1,7 @@
- Exiv2 - Exif metadata manipulation library and tools
+ Exiv2 - Exif and IPTC metadata manipulation library and tools
diff --git a/doc/iptc.xml b/doc/iptc.xml
new file mode 100644
index 00000000..ad2a66d7
--- /dev/null
+++ b/doc/iptc.xml
@@ -0,0 +1,866 @@
+
+
+
+
+
+
+ ModelVersion
+ 0
+ 0x0000
+ Envelope
+ true
+ false
+ 2
+ 2
+ Iptc.Envelope.ModelVersion
+ Version of IIM part 1
+
+
+ Destination
+ 5
+ 0x0005
+ Envelope
+ false
+ true
+ 0
+ 1024
+ Iptc.Envelope.Destination
+ Routing information
+
+
+ FileFormat
+ 20
+ 0x0014
+ Envelope
+ true
+ false
+ 2
+ 2
+ Iptc.Envelope.FileFormat
+ IIM appendix A file format
+
+
+ FileVersion
+ 22
+ 0x0016
+ Envelope
+ true
+ false
+ 2
+ 2
+ Iptc.Envelope.FileVersion
+ File format version
+
+
+ ServiceId
+ 30
+ 0x001e
+ Envelope
+ true
+ false
+ 0
+ 10
+ Iptc.Envelope.ServiceId
+ Identifies the provider and product
+
+
+ EnvelopeNumber
+ 40
+ 0x0028
+ Envelope
+ true
+ false
+ 8
+ 8
+ Iptc.Envelope.EnvelopeNumber
+ Combined unique identification
+
+
+ ProductId
+ 50
+ 0x0032
+ Envelope
+ false
+ true
+ 0
+ 32
+ Iptc.Envelope.ProductId
+ Identifies service subset
+
+
+ EnvelopePriority
+ 60
+ 0x003c
+ Envelope
+ false
+ false
+ 1
+ 1
+ Iptc.Envelope.EnvelopePriority
+ Envelope handling priority
+
+
+ DateSent
+ 70
+ 0x0046
+ Envelope
+ true
+ false
+ 8
+ 8
+ Iptc.Envelope.DateSent
+ Date material was sent
+
+
+ TimeSent
+ 80
+ 0x0050
+ Envelope
+ false
+ false
+ 11
+ 11
+ Iptc.Envelope.TimeSent
+ Time material was sent
+
+
+ CharacterSet
+ 90
+ 0x005a
+ Envelope
+ false
+ false
+ 0
+ 32
+ Iptc.Envelope.CharacterSet
+ Specifies character sets
+
+
+ UNO
+ 100
+ 0x0064
+ Envelope
+ false
+ false
+ 14
+ 80
+ Iptc.Envelope.UNO
+ Unique Name of Object
+
+
+ ARMId
+ 120
+ 0x0078
+ Envelope
+ false
+ false
+ 2
+ 2
+ Iptc.Envelope.ARMId
+ Abstract Relationship Method identifier
+
+
+ ARMVersion
+ 122
+ 0x007a
+ Envelope
+ false
+ false
+ 2
+ 2
+ Iptc.Envelope.ARMVersion
+ Abstract Relationship Method version
+
+
+ RecordVersion
+ 0
+ 0x0000
+ Application2
+ true
+ false
+ 2
+ 2
+ Iptc.Application2.RecordVersion
+ Version of IIM part 2
+
+
+ ObjectType
+ 3
+ 0x0003
+ Application2
+ false
+ false
+ 3
+ 67
+ Iptc.Application2.ObjectType
+ IIM appendix G object type
+
+
+ ObjectAttribute
+ 4
+ 0x0004
+ Application2
+ false
+ true
+ 4
+ 68
+ Iptc.Application2.ObjectAttribute
+ IIM appendix G object attribute
+
+
+ ObjectName
+ 5
+ 0x0005
+ Application2
+ false
+ false
+ 0
+ 64
+ Iptc.Application2.ObjectName
+ Shorthand reference of content
+
+
+ EditStatus
+ 7
+ 0x0007
+ Application2
+ false
+ false
+ 0
+ 64
+ Iptc.Application2.EditStatus
+ Content status
+
+
+ EditorialUpdate
+ 8
+ 0x0008
+ Application2
+ false
+ false
+ 2
+ 2
+ Iptc.Application2.EditorialUpdate
+ Indicates the type of update
+
+
+ Urgency
+ 10
+ 0x000a
+ Application2
+ false
+ false
+ 1
+ 1
+ Iptc.Application2.Urgency
+ Editorial urgency of content
+
+
+ Subject
+ 12
+ 0x000c
+ Application2
+ false
+ true
+ 13
+ 236
+ Iptc.Application2.Subject
+ Structured definition of the subject
+
+
+ Category
+ 15
+ 0x000f
+ Application2
+ false
+ false
+ 0
+ 3
+ Iptc.Application2.Category
+ Identifies the subject
+
+
+ SuppCategory
+ 20
+ 0x0014
+ Application2
+ false
+ true
+ 0
+ 32
+ Iptc.Application2.SuppCategory
+ Refines the subject
+
+
+ FixtureId
+ 22
+ 0x0016
+ Application2
+ false
+ false
+ 0
+ 32
+ Iptc.Application2.FixtureId
+ Identifies content that recurs
+
+
+ Keywords
+ 25
+ 0x0019
+ Application2
+ false
+ true
+ 0
+ 64
+ Iptc.Application2.Keywords
+ Information retrieval words
+
+
+ LocationCode
+ 26
+ 0x001a
+ Application2
+ false
+ true
+ 3
+ 3
+ Iptc.Application2.LocationCode
+ ISO country code for content
+
+
+ LocationName
+ 27
+ 0x001b
+ Application2
+ false
+ true
+ 0
+ 64
+ Iptc.Application2.LocationName
+ Full country name for content
+
+
+ ReleaseDate
+ 30
+ 0x001e
+ Application2
+ false
+ false
+ 8
+ 8
+ Iptc.Application2.ReleaseDate
+ Earliest intended usable date
+
+
+ ReleaseTime
+ 35
+ 0x0023
+ Application2
+ false
+ false
+ 11
+ 11
+ Iptc.Application2.ReleaseTime
+ Earliest intended usable time
+
+
+ ExpirationDate
+ 37
+ 0x0025
+ Application2
+ false
+ false
+ 8
+ 8
+ Iptc.Application2.ExpirationDate
+ Latest intended usable date
+
+
+ ExpirationTime
+ 38
+ 0x0026
+ Application2
+ false
+ false
+ 11
+ 11
+ Iptc.Application2.ExpirationTime
+ Latest intended usable time
+
+
+ SpecialInstructions
+ 40
+ 0x0028
+ Application2
+ false
+ false
+ 0
+ 256
+ Iptc.Application2.SpecialInstructions
+ Editorial usage instructions
+
+
+ ActionAdvised
+ 42
+ 0x002a
+ Application2
+ false
+ false
+ 2
+ 2
+ Iptc.Application2.ActionAdvised
+ Action provided to previous data
+
+
+ ReferenceService
+ 45
+ 0x002d
+ Application2
+ false
+ true
+ 0
+ 10
+ Iptc.Application2.ReferenceService
+ Service Identifier of a prior envelope
+
+
+ ReferenceDate
+ 47
+ 0x002f
+ Application2
+ false
+ true
+ 8
+ 8
+ Iptc.Application2.ReferenceDate
+ Date of a prior envelope
+
+
+ ReferenceNumber
+ 50
+ 0x0032
+ Application2
+ false
+ true
+ 8
+ 8
+ Iptc.Application2.ReferenceNumber
+ Envelope Number of a prior envelope
+
+
+ DateCreated
+ 55
+ 0x0037
+ Application2
+ false
+ false
+ 8
+ 8
+ Iptc.Application2.DateCreated
+ Creation date of intellectual content
+
+
+ TimeCreated
+ 60
+ 0x003c
+ Application2
+ false
+ false
+ 11
+ 11
+ Iptc.Application2.TimeCreated
+ Creation time of intellectual content
+
+
+ DigitizationDate
+ 62
+ 0x003e
+ Application2
+ false
+ false
+ 8
+ 8
+ Iptc.Application2.DigitizationDate
+ Creation date of digital representation
+
+
+ DigitizationTime
+ 63
+ 0x003f
+ Application2
+ false
+ false
+ 11
+ 11
+ Iptc.Application2.DigitizationTime
+ Creation time of digital representation
+
+
+ Program
+ 65
+ 0x0041
+ Application2
+ false
+ false
+ 0
+ 32
+ Iptc.Application2.Program
+ Content creation program
+
+
+ ProgramVersion
+ 70
+ 0x0046
+ Application2
+ false
+ false
+ 0
+ 10
+ Iptc.Application2.ProgramVersion
+ Content creation program version
+
+
+ ObjectCycle
+ 75
+ 0x004b
+ Application2
+ false
+ false
+ 1
+ 1
+ Iptc.Application2.ObjectCycle
+ Morning
+
+
+ Byline
+ 80
+ 0x0050
+ Application2
+ false
+ true
+ 0
+ 32
+ Iptc.Application2.Byline
+ Name of content creator
+
+
+ BylineTitle
+ 85
+ 0x0055
+ Application2
+ false
+ true
+ 0
+ 32
+ Iptc.Application2.BylineTitle
+ Title of content creator
+
+
+ City
+ 90
+ 0x005a
+ Application2
+ false
+ false
+ 0
+ 32
+ Iptc.Application2.City
+ City of content origin
+
+
+ SubLocation
+ 92
+ 0x005c
+ Application2
+ false
+ false
+ 0
+ 32
+ Iptc.Application2.SubLocation
+ Location within city
+
+
+ ProvinceState
+ 95
+ 0x005f
+ Application2
+ false
+ false
+ 0
+ 32
+ Iptc.Application2.ProvinceState
+ Province/State of content origin
+
+
+ CountryCode
+ 100
+ 0x0064
+ Application2
+ false
+ false
+ 3
+ 3
+ Iptc.Application2.CountryCode
+ ISO country code of content origin
+
+
+ CountryName
+ 101
+ 0x0065
+ Application2
+ false
+ false
+ 0
+ 64
+ Iptc.Application2.CountryName
+ Full country name of content origin
+
+
+ TransmissionReference
+ 103
+ 0x0067
+ Application2
+ false
+ false
+ 0
+ 32
+ Iptc.Application2.TransmissionReference
+ Location of original transmission
+
+
+ Headline
+ 105
+ 0x0069
+ Application2
+ false
+ false
+ 0
+ 256
+ Iptc.Application2.Headline
+ Content synopsis
+
+
+ Credit
+ 110
+ 0x006e
+ Application2
+ false
+ false
+ 0
+ 32
+ Iptc.Application2.Credit
+ Content provider
+
+
+ Source
+ 115
+ 0x0073
+ Application2
+ false
+ false
+ 0
+ 32
+ Iptc.Application2.Source
+ Original owner of content
+
+
+ Copyright
+ 116
+ 0x0074
+ Application2
+ false
+ false
+ 0
+ 128
+ Iptc.Application2.Copyright
+ Necessary copyright notice
+
+
+ Contact
+ 118
+ 0x0076
+ Application2
+ false
+ true
+ 0
+ 128
+ Iptc.Application2.Contact
+ Person or organisation to contact
+
+
+ Caption
+ 120
+ 0x0078
+ Application2
+ false
+ false
+ 0
+ 2000
+ Iptc.Application2.Caption
+ Content description
+
+
+ Writer
+ 122
+ 0x007a
+ Application2
+ false
+ true
+ 0
+ 32
+ Iptc.Application2.Writer
+ Person responsible for caption
+
+
+ RasterizedCaption
+ 125
+ 0x007d
+ Application2
+ false
+ false
+ 7360
+ 7360
+ Iptc.Application2.RasterizedCaption
+ Black and white caption image
+
+
+ ImageType
+ 130
+ 0x0082
+ Application2
+ false
+ false
+ 2
+ 2
+ Iptc.Application2.ImageType
+ Color components in an image
+
+
+ ImageOrientation
+ 131
+ 0x0083
+ Application2
+ false
+ false
+ 1
+ 1
+ Iptc.Application2.ImageOrientation
+ Indicates the layout of an image
+
+
+ Language
+ 135
+ 0x0087
+ Application2
+ false
+ false
+ 2
+ 3
+ Iptc.Application2.Language
+ ISO 639:1988 language code
+
+
+ AudioType
+ 150
+ 0x0096
+ Application2
+ false
+ false
+ 2
+ 2
+ Iptc.Application2.AudioType
+ Information about audio content
+
+
+ AudioRate
+ 151
+ 0x0097
+ Application2
+ false
+ false
+ 6
+ 6
+ Iptc.Application2.AudioRate
+ Sampling rate of audio content
+
+
+ AudioResolution
+ 152
+ 0x0098
+ Application2
+ false
+ false
+ 2
+ 2
+ Iptc.Application2.AudioResolution
+ Sampling resolution of audio content
+
+
+ AudioDuration
+ 153
+ 0x0099
+ Application2
+ false
+ false
+ 6
+ 6
+ Iptc.Application2.AudioDuration
+ Duration of audio content
+
+
+ AudioOutcue
+ 154
+ 0x009a
+ Application2
+ false
+ false
+ 0
+ 64
+ Iptc.Application2.AudioOutcue
+ Final words or sounds of audio content
+
+
+ PreviewFormat
+ 200
+ 0x00c8
+ Application2
+ false
+ false
+ 2
+ 2
+ Iptc.Application2.PreviewFormat
+ IIM appendix A file format of preview
+
+
+ PreviewVersion
+ 201
+ 0x00c9
+ Application2
+ false
+ false
+ 2
+ 2
+ Iptc.Application2.PreviewVersion
+ File format version of preview
+
+
+ Preview
+ 202
+ 0x00ca
+ Application2
+ false
+ false
+ 0
+ 256000
+ Iptc.Application2.Preview
+ Binary preview data
+
+
+
diff --git a/doc/iptc.xsl b/doc/iptc.xsl
new file mode 100644
index 00000000..e07896ea
--- /dev/null
+++ b/doc/iptc.xsl
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+ Exiv2 - Exif and IPTC metadata manipulation library and tools
+
+
+
+
+
+Exif and IPTC metadata manipulation library and tools
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tag name
+ Tag description
+ Tag (dec)
+ Tag (hex)
+ Record name
+ Mandatory
+ Repeatable
+ Min. bytes
+ Max. bytes
+ Key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/makernote.html b/doc/makernote.html
index 5e921ea7..15360ed8 100644
--- a/doc/makernote.html
+++ b/doc/makernote.html
@@ -1,14 +1,14 @@
- Exiv2 - Exif metadata manipulation library and tools
+ Exiv2 - Exif and IPTC metadata manipulation library and tools
-Exif metadata manipulation library and tools
+Exif and IPTC metadata manipulation library and tools
MakerNote Formats and Specifications
According to the Exif 2.2 standard , the makernote is "a tag for manufacturers of Exif writers to record any desired information. The contents are up to the manufacturer, but this tag should not be used for any other than its intended purpose." Many (but not all) vendors write the makernote in IFD (Image File Directory) format, i.e., in the same format as the rest of the Exif information is encoded. Many manufacturers apparently store a lot of information in the makernote field but unfortunately, most vendors do not publish their specifications.
diff --git a/doc/tags.xsl b/doc/tags.xsl
index 00a484bc..818da268 100644
--- a/doc/tags.xsl
+++ b/doc/tags.xsl
@@ -7,13 +7,13 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
- Exiv2 - Exif metadata manipulation library and tools
+ Exiv2 - Exif and IPTC metadata manipulation library and tools
-Exif metadata manipulation library and tools
+Exif and IPTC metadata manipulation library and tools