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
- Record Level
- Dataset Value Item
- Dataset Value Items Description for IPTC Envelope Record (Record #1)
- Dataset Value Items Description for IPTC Application Record (Record #2)
- Dataset Value Items Description for IPTC Digital News Photo Parameter Record (Record #3)
- Dataset Value Items Description for IPTC Pre-Object Descriptor Record (Record #7)
- Dataset Value Items Description for IPTC Object Record (Record #8)
- Dataset Value Items Description for IPTC Post-Object Descriptor Record (Record #9)
- Callback Required for Writing IPTC Metadata Items
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.