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.