ImageGear .NET v25.0 - Updated
IPTC Metadata Structure
User Guide > File Formats and Compressions > File Formats > Metadata Structures > IPTC Metadata Structure

International Press and Telecommunications Council Standards (IPTC) have been created for exchanging different type of information.

IPTC is a metadata format rather than a image file format. It can be stored within JPEG and TIFF image files as Adobe Photoshop Image Resource (see Photoshop Image Resource Metadata Structure). In TIFF files the IPTC data is stored in TIFF tag with Id = 34377 (see TIFF Non-Image Data Structure for metadata structure of the tag). In JPEG files, the IPTC data is stored in Photoshop Image Resource APP13 marker segment (see JPEG Non-Image Data Structure).

ImageGear IPTC metadata structure is framed in two levels:

IPTC Level

Name Id Type Value Type Value Value Length Ignored on save
Record level 1 <Record#> Tree        
 
Record level n <Record#> Tree        

The <Record#> tag is the primary identifier of IPTC record. Its value is the number of appropriate IPTC record described in IPTC - NAA IIM4 specification. Record levels must follow in numerical order within IPTC level.

Record Level

Name Id Type Value Type Value Value Length Ignored on save
Dataset value item <DataSet ID> Leaf <Value Type> <Data> <Item Count> FALSE
 
Dataset value item <DataSet ID> Leaf <Value Type> <Data> <Item Count> FALSE

The available <Dataset name>, <Dataset Id>, <Item Count>, and <Value Type> values are described below for each IPTC record according to IPTC-NAA IIM4 specification. Dataset value item can follow in any order within appropriate record level.

In the tables below, the last column lists the maximum item count for non-string types, and string length for string types. Item count for string types in IPTC metadata is always 1.

Dataset Value Items Description for IPTC Envelope Record (Record #1)

Item Identifier Item Name Value Type Max. Value Length

(for String last NULL is not counted)
0 "ModelVersion" UINT16 1
5 "Destination" STRING 1024
20 "FileFormat" UINT16 1
22 "FileFormatVersion" UINT16 1
30 "ServiceIdentifier" STRING 10
40 "EnvelopeNumber" STRING 8
50 "ProductID" STRING 32
60 "EnvelopePriority" STRING 1
70 "DateSent" STRING 8
80 "TimeSent" STRING 11
90 "CodedCharacterSet" STRING 32
100 "UNO" STRING 80
120 "ARMIdentifier" UINT16 1
122 "ARMVersion" UINT16 1

Dataset Value Items Description for IPTC Application Record (Record #2)

Item Identifier Item Name Value Type Max. Value Length

(for String last NULL is not counted)
0 "RecordVersion" UINT16 1
3 "ObjectTypeReference" STRING 67
4 "ObjectAttributeReference" STRING 68
5 "ObjectName" STRING 64
7 "EditStatus" STRING 64
8 "EditorialUpdate" STRING 2
10 "Urgency" STRING 1
12 "SubjectReference" STRING 236
15 "Category" STRING 3
20 "SupplementalCategory" STRING 32
22 "FixtureIdentifier" STRING 32
25 "Keywords" STRING 64
26 "ContentLocationCode" STRING 3
27 "ContentLocationName" STRING 64
30 "ReleaseDate" STRING 8
35 "ReleaseTime" STRING 11
37 "ExpirationDate" STRING 8
38 "ExpirationTime" STRING 11
40 "SpecialInstructions" STRING 256
42 "ActionAdvised" STRING 2
45 "ReferenceService" STRING 10
47 "ReferenceDate" STRING 8
50 "ReferenceNumber" STRING 8
55 "DateCreated" STRING 8
60 "TimeCreated" STRING 11
62 "DigitalCreationDate" STRING 8
63 "DigitalCreationTime" STRING 11
65 "OriginatingProgram" STRING 32
70 "ProgramVersion" STRING 10
75 "ObjectCycle" STRING 1
80 "By-line" STRING 32
85 "By-lineTitle" STRING 32
90 "City" STRING 32
92 "Sublocation" STRING 32
95 "Province/State" STRING 32
100 "Country/

PrimaryLocationCode"
STRING 3
101 "Country/

PrimaryLocationName"
STRING 64
103 "OriginalTransmission

Reference"
STRING 32
105 "Headline" STRING 256
110 "Credit" STRING 32
115 "Source" STRING 32
116 "CopyrightNotice" STRING 128
118 "Contact" STRING 128
120 "Caption/Abstract" STRING 2000
122 "Writer/Editor" STRING 32
125 "RasterizedCaption" UINT8 7360
130 "ImageType" STRING 2
131 "ImageOrientation" STRING 1
135 "LanguageIdentifier" STRING 3
150 "AudioType" STRING 2
151 "AudioSamplingRate" STRING 6
152 "AudioSamplingResolution" STRING 2
153 "AudioDuration" STRING 6
154 "AudioOutcue" STRING 64
200 "ObjectDataPreview

FileFormat"
UINT16 1
201 "ObjectDataPreview

FileFormatVersion"
UINT16 1
202 "ObjectDataPreviewData" UINT8 Undefined

Dataset Value Items Description for IPTC Digital News Photo Parameter Record (Record #3)

Item Identifier Item Name Value Type Max. Value Length (for String last NULL is not counted)
0 "RecordVersion" UINT16 1
10 "PictureNumber" RAW_DATA 16
20 "PixelsPerLine" UINT16 1
30 "NumberOfLine" UINT16 1
40 "PixelSizeInScanningDirection" UINT16 1
50 "PixelSizePerpendicularTo

ScanningDirection"
UINT16 1
55 "SupplementType" UINT8 1
60 "ColourRepresentation" UINT8 2
64 "InterchangeColourSpace" UINT8 1
65 "ColourSequence" UINT8 4
66 "ICCInputColourProfile" RAW_DATA Undefined
70 "ColourCalibrationMatrixTable" RAW_DATA Undefined
80 "LookupTable" RAW_DATA 131072
84 "NumberOfIndexEntries" UINT16 1
85 "ColourPalette" RAW_DATA Undefined
86 "NumberOfBitsPerSample" UINT8 1
90 "SamplingStructure" UINT8 1
100 "ScanningDirection" UINT8 1
102 "ImageRotation" UINT8 1
110 "DataCompressionMethod" RAW_DATA 4
120 "QuantisationMethod" UINT8 1
125 "EndPoints" UINT8 Undefined
130 "ExcursionTolerance" UINT8 1
135 "BitsPerComponent" UINT8 Undefined
140 "MaximumDensityRange" UINT16 1
145 "GammaCompensatedValue" UINT16 1

Dataset Value Items Description for IPTC Pre-Object Descriptor Record (Record #7)

Item Identifier Item Name Value Type Max. Value Length (for String last NULL is not counted)
10 "SizeMode" UINT8 1
20 "MaxSubfileSize" UINT8 or

UINT16 or

UINT32
1
90 "ObjectDataSizeAnnounced" UINT8 or

UINT16 or

UINT32
1
95 "MaximumObjectDataSize" UINT8 or

UINT16 or

UINT32
1

Dataset Value Items Description for IPTC Object Record (Record #8)

Item Identifier Item Name Value Type Max. Value Length (for String last NULL is not counted)
10 "Subfile" RAW_DATA Undefined

Dataset Value Items Description for IPTC Post-Object Descriptor Record (Record #9)

Item Identifier Item Name Value Type Max. Value Length (for String last NULL is not counted)
10 "ConfirmedObjectDataSize" UINT8 or

UINT16 or

UINT32
1