ImageGear for C and C++ on Windows v21.0 - Updated
User Guide / File Formats and Compressions / File Formats / Metadata Structures / IPTC Metadata Structure
In This Topic
    IPTC Metadata Structure
    In This Topic

    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.

    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.