ImageGear for C and C++ on Windows v19.10 - Updated
IPTC Metadata Structure
User Guide > File Formats and Compressions > File Formats > Metadata Structures > IPTC Metadata Structure

IPTC, International Press and Telecommunications Council Standards, was created for exchanging different types of information associated with images.

IPTC is not a file format. In TIFF and EXIF_TIFF files, the IPTC data can be stored in a separate TIFF tag IPTC_NAA (id = 33723), or within Adobe Photoshop Resources (id = 34377). In JPEG and EXIF-JPEG files, the IPTC data is stored in Adobe Photoshop APP13 marker segment.

See TIFF Non-Image Data Structure, JPEG Non-Image Data Structure, and Photoshop Image Resource metadata structure.

Use TIFF control parameter SAVE_IPTC_NAA to control the saving of IPTC_NAA tag to TIFF and EXIF_TIFF formats.
Brief information on IPTC metadata levels is provided in the set of tables below:

IPTC Level

Name Id Type ValueType Value Value Length Read Only
"IPTC" 0x1C00 LEVEL_START UNDEFINED NULL 0 TRUE
Record level 1
...
Record level n
"IPTC" 0x1C00 LEVEL_END UNDEFINED NULL 0 TRUE

All items between items with Name "IPTC" and Id 0x1C00 (Type LEVEL_START and LEVEL_END) are interpreted as IPTC data. If during sending data from application level to filter level the first item is omitted the data will not be interpreted and saved.

Record Level

Name Id Type ValueType Value Value Length Read Only
"IPTC_RECORD" <Record#> LEVEL_START UNDEFINED NULL 0 TRUE
Dataset value item
...
Dataset value item
"IPTC_RECORD" <Record#> LEVEL_END UNDEFINED NULL 0 TRUE

The<Record#> is 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.

Dataset Value Item

Name Id Type ValueType Value Value Length Read Only
<Dataset name> <Dataset Id> VALUE_ITEM <Value Type> <Data> <Value Length> FALSE

The available <Dataset name>, <Dataset Id>, <Value Length> 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.

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" AT_TID_WORD 1
5 "Destination" AT_TID_STRING 1024
20 "FileFormat" AT_TID_WORD 1
22 "FileFormatVersion" AT_TID_WORD 1
30 "ServiceIdentifier" AT_TID_STRING 10
40 "EnvelopeNumber" AT_TID_STRING 8
50 "ProductID" AT_TID_STRING 32
60 "EnvelopePriority" AT_TID_STRING 1
70 "DateSent" AT_TID_STRING 8
80 "TimeSent" AT_TID_STRING 11
90 "CodedCharacterSet" AT_TID_STRING 32
100 "UNO" AT_TID_STRING 80
120 "ARMIdentifier" AT_TID_WORD 1
122 "ARMVersion" AT_TID_WORD 1

See also enumIGIPTCRecord1DatasetTags.

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" AT_TID_WORD 1
3 "ObjectTypeReference" AT_TID_STRING 67
4 "ObjectAttributeReference" AT_TID_STRING 68
5 "ObjectName" AT_TID_STRING 64
7 "EditStatus" AT_TID_STRING 64
8 "EditorialUpdate" AT_TID_STRING 2
10 "Urgency" AT_TID_STRING 1
12 "SubjectReference" AT_TID_STRING 236
15 "Category" AT_TID_STRING 3
20 "SupplementalCategory" AT_TID_STRING 32
22 "FixtureIdentifier" AT_TID_STRING 32
25 "Keywords" AT_TID_STRING 64
26 "ContentLocationCode" AT_TID_STRING 3
27 "ContentLocationName" AT_TID_STRING 64
30 "ReleaseDate" AT_TID_STRING 8
35 "ReleaseTime" AT_TID_STRING 11
37 "ExpirationDate" AT_TID_STRING 8
38 "ExpirationTime" AT_TID_STRING 11
40 "SpecialInstructions" AT_TID_STRING 256
42 "ActionAdvised" AT_TID_STRING 2
45 "ReferenceService" AT_TID_STRING 10
47 "ReferenceDate" AT_TID_STRING 8
50 "ReferenceNumber" AT_TID_STRING 8
55 "DateCreated" AT_TID_STRING 8
60 "TimeCreated" AT_TID_STRING 11
62 "DigitalCreationDate" AT_TID_STRING 8
63 "DigitalCreationTime" AT_TID_STRING 11
65 "OriginatingProgram" AT_TID_STRING 32
70 "ProgramVersion" AT_TID_STRING 10
75 "ObjectCycle" AT_TID_STRING 1
80 "By-line" AT_TID_STRING 32
85 "By-lineTitle" AT_TID_STRING 32
90 "City" AT_TID_STRING 32
92 "Sublocation" AT_TID_STRING 32
95 "Province/State" AT_TID_STRING 32
100 "Country/ PrimaryLocationCode" AT_TID_STRING 3
101 "Country/ PrimaryLocationName" AT_TID_STRING 64
103 "OriginalTransmission Reference" AT_TID_STRING 32
105 "Headline" AT_TID_STRING 256
110 "Credit" AT_TID_STRING 32
115 "Source" AT_TID_STRING 32
116 "CopyrightNotice" AT_TID_STRING 128
118 "Contact" AT_TID_STRING 128
120 "Caption/Abstract" AT_TID_STRING 2000
122 "Writer/Editor" AT_TID_STRING 32
125 "RasterizedCaption" AT_TID_BYTE 7360
130 "ImageType" AT_TID_STRING 2
131 "ImageOrientation" AT_TID_STRING 1
135 "LanguageIdentifier" AT_TID_STRING 3
150 "AudioType" AT_TID_STRING 2
151 "AudioSamplingRate" AT_TID_STRING 6
152 "AudioSamplingResolution" AT_TID_STRING 2
153 "AudioDuration" AT_TID_STRING 6
154 "AudioOutcue" AT_TID_STRING 64
200 "ObjectDataPreview FileFormat" AT_TID_WORD 1
201 "ObjectDataPreview FileFormatVersion" AT_TID_WORD 1
202 "ObjectDataPreviewData" AT_TID_BYTE Undefined

See also enumIGIPTCRecord2DatasetTags.

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" AM_TID_TXT_UINT16 1
10 "PictureNumber" AM_TID_RAW_DATA 16
20 "PixelsPerLine" AM_TID_TXT_UINT16 1
30 "NumberOfLine" AM_TID_TXT_UINT16 1
40 "PixelSizeInScanningDirection" AM_TID_TXT_UINT16 1
50 "PixelSizePerpendicularTo ScanningDirection" AM_TID_TXT_UINT16 1
55 "SupplementType" AM_TID_TXT_UINT8 1
60 "ColourRepresentation" AM_TID_TXT_UINT8 2
64 "InterchangeColourSpace" AM_TID_TXT_UINT8 1
65 "ColourSequence" AM_TID_TXT_UINT8 4
66 "ICCInputColourProfile" AM_TID_RAW_DATA Undefined
70 "ColourCalibrationMatrixTable" AM_TID_RAW_DATA Undefined
80 "LookupTable" AM_TID_RAW_DATA 131072
84 "NumberOfIndexEntries" AM_TID_TXT_UINT16 1
85 "ColourPalette" AM_TID_RAW_DATA Undefined
86 "NumberOfBitsPerSample" AM_TID_TXT_UINT8 1
90 "SamplingStructure" AM_TID_TXT_UINT8 1
100 "ScanningDirection" AM_TID_TXT_UINT8 1
102 "ImageRotation" AM_TID_TXT_UINT8 1
110 "DataCompressionMethod" AM_TID_RAW_DATA 4
120 "QuantisationMethod" AM_TID_TXT_UINT8 1
125 "EndPoints" AM_TID_TXT_UINT8 Undefined
130 "ExcursionTolerance" AM_TID_TXT_UINT8 1
135 "BitsPerComponent" AM_TID_TXT_UINT8 Undefined
140 "MaximumDensityRange" AM_TID_TXT_UINT16 1
145 "GammaCompensatedValue" AM_TID_TXT_UINT16 1

See also enumIGIPTCRecord3DatasetTags.

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" AM_TID_TXT_UINT8 1
20 "MaxSubfileSize" AM_TID_TXT_UINT8 or AM_TID_TXT_UINT16 or AM_TID_TXT_UINT32 1
90 "ObjectDataSizeAnnounced" AM_TID_TXT_UINT8 or AM_TID_TXT_UINT16 or AM_TID_TXT_UINT32 1
95 "MaximumObjectDataSize" AM_TID_TXT_UINT8 or AM_TID_TXT_UINT16 or AM_TID_TXT_UINT32 1

See also enumIGIPTCRecord7DatasetTags.

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" AM_TID_RAW_DATA Undefined

See also enumIGIPTCRecord8DatasetTags.

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" AM_TID_TXT_UINT8 or AM_TID_TXT_UINT16 or AM_TID_TXT_UINT32 1

See also enumIGIPTCRecord9DatasetTags.

Callback Required for Writing IPTC Metadata Items

All IPTC metadata items can be written using LPAFT_IG_METAD_ITEM_ADD_CB callback only.