The IPTC-NAA comments are standardized by the International Press Telecommunications Council in collaboration with Newspaper Association of America. More information about these comments can be found on IPTC’s web site (http://www.iptc.org). Many comments have to follow a particular format, so refer to the IPTC documentation to make sure you are writing valid comments.
LEADTOOLS will verify that the size of the comment is within the limits specified by the standard. Comments with invalid length will NOT be written in the file. LEADTOOLS will NOT verify the contents of the data (it will not verify that the numerical comments contain only digits, etc.).
Some of these comments are repeatable (ie you can have more than one comment of this type). To write two or more values for a repeatable comment, concatenate the comments using IptcSeparator as the separator. IptcSeparator has an Ascii code of 1 and cannot appear in any comment, so there is not a possibility of confusion about this character being the separator or part of the comment. Do not confuse this with the character ‘1’, whose Ascii code is 49!
When reading a repeatable comment with more than one value, LEADTOOLS will concatenate all the values and use IptcSeparator to separate the values. Therefore, when a comment that might be repeatable is retrieved, it is best to search for the separator.
IptcKeywords is the best example of a comment that is repeatable. If the file has three keywords (keyword1, keyword2 and keyword3), they will be returned as the following string:
"keyword1\001keyword2\001keyword3".
Every IPTC comment is identified by x:y, where x is the Record number and y is the DataSet number. For example,IptcKeywords is identified as 2:15. We will list the corresponding "x:y" identifier for every comment supported in LEADTOOLS, together with the length limits.
All the date comments use the format YYYYMMDD, so July 4, 2001 is "20010704".
All the time comments use the format HHMMSS±HHMM, following the ISO 8601 standard. The part after ± is the reference to the Universal Time Format. For example, 3PM Eastern USA time is "150000-0500".
Please note that IptcSeparator is not a comment, it is only a define used for the separator!
IptcSeparator ‘\001’ A separator used for repeatable comments.
IPTC comments can be saved inside TIFF and JPEG files.
Value | Meaning |
---|---|
RasterCommentMetadataType.IptcFirst | The first IPTC comment To get all IPTC comments, use the comment type constant as a loop counter. The first constant is RasterCommentMetadataType.IptcFirst and the last is RasterCommentMetadataType.IptcLast |
RasterCommentMetadataType.IptcLast | The last IPTC comment |
RasterCommentMetadataType.IptcVersion | 2:0, the version of IPTC comments (read-only). Non-repeatable, (min=2 bytes, max=2). This is the only comment that is binary. The first byte is the lower version number (usually 0) and the second byte is the high version number (the current version is 4 - binary 4, not ascii ‘4’). LEADTOOLS writes 4 here. |
RasterCommentMetadataType.IptcObjectTypeReference | 2:3, Object type reference. Non repeatable. Length = 3..67. |
RasterCommentMetadataType.IptcObjectAttributeReference | 2:4, Object Attribute Reference. Repeatable. Length = 4..68. |
RasterCommentMetadataType.IptcObjectName | 2:5, Object name. Non repeatable. Length = 1..64. |
RasterCommentMetadataType.IptcEditStatus | 2:7, Edit status. Non repeatable. Length = 1..64. |
RasterCommentMetadataType.IptcEditorialUpdate | 2:8, Editorial update. Non repeatable. Length = 2..2. |
RasterCommentMetadataType.IptcUrgency | 2:10, Urgency. Non repeatable. ‘1’ is most urgent, ‘5’ = Normal, ‘8’ is least urgent. Length = 1..1. |
RasterCommentMetadataType.IptcSubjectReference | 2:12, Subject reference. Repeatable. Length = 13..236. |
RasterCommentMetadataType.IptcCategory | 2:15, Category. Non repeatable. Length = 1..3. |
RasterCommentMetadataType.IptcSupplementalCategory | 2:20, Supplemental category. Repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcFixtureIdentifier | 2:22, Fixture identifier. Non repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcKeywords | 2:25, Keywords. Repeatable. Length = 1..64. |
RasterCommentMetadataType.IptcContentLocationCode | 2:26, Content location code. Repeatable. Length = 3..3. |
RasterCommentMetadataType.IptcContentLocationName | 2:27, Content location name. Repeatable. Length = 1..64. |
RasterCommentMetadataType.IptcReleaseDate | 2:30, Release date. Non repeatable. Length = 8..8. |
RasterCommentMetadataType.IptcReleaseTime | 2:35, Release time. Non repeatable. Length = 11..11. |
RasterCommentMetadataType.IptcExpirationDate | 2:37, Expiration date. Non repeatable. Length = 8..8. |
RasterCommentMetadataType.IptcExpirationTime | 2:38, Expiration time. Non repeatable. Length = 11..11. |
RasterCommentMetadataType.IptcSpecialInstructions | 2:40, Special instructions. Non repeatable. Length = 1..256. |
RasterCommentMetadataType.IptcActionAdvised | 2:42, Action advised. Non repeatable. Length = 2..2. |
RasterCommentMetadataType.IptcReferenceService | 2:45, Reference service. Repeatable. Length = 1..10. |
RasterCommentMetadataType.IptcReferenceDate | 2:47, Reference date. Repeatable. Length = 8..8. |
RasterCommentMetadataType.IptcReferenceNumber | 2:50, Reference number. Repeatable. Length = 8..8. |
RasterCommentMetadataType.IptcDateCreated | 2:55, Date created. Non repeatable. Length = 8..8. |
RasterCommentMetadataType.IptcTimeCreated | 2:60, Time created. Non repeatable. Length = 11..11. |
RasterCommentMetadataType.IptcDigitalCreationDate | 2:62, Digital creation date. Non repeatable. Length = 8..8. |
RasterCommentMetadataType.IptcDigitalCreationTime | 2:63, Digital creation time. Non repeatable. Length = 11..11. |
RasterCommentMetadataType.IptcOriginatingProgram | 2:65, Originating program. Non repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcProgramVersion | 2:70, Program version. Non repeatable. Length = 1..10. |
RasterCommentMetadataType.IptcObjectCycle | 2:75, Object cycle. Non repeatable. Length = 1..1. |
RasterCommentMetadataType.IptcByline | 2:80, By-line. Repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcBylineTitle | 2:85, By-line title. Repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcCity | 2:90, City Non repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcSubLocation | 2:92, Sub-location. Non repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcProvinceState | 2:95, Province/State. Non repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcPrimaryLocationCode | 2:100, Country/Primary location code. Non repeatable. Length = 3..3. |
RasterCommentMetadataType.IptcPrimaryLocationName | 2:101, Country/Primary location name. Non repeatable. Length = 1..64. |
RasterCommentMetadataType.IptcOriginalTransmissionReference | 2:103, Original transmission reference. Non repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcHeadline | 2:105, Headline. Non repeatable. Length = 1..256. |
RasterCommentMetadataType.IptcCredit | 2:110, Credit. Non repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcSource | 2:115, Source. Non repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcCopyright | 2:116, Copyright Notice. Non repeatable. Length = 1..128. |
RasterCommentMetadataType.IptcContact | 2:118, Contact. Repeatable. Length = 1..128. |
RasterCommentMetadataType.IptcCaption | 2:120, Caption/Abstract. Non repeatable. Length = 1..2000. |
RasterCommentMetadataType.IptcAuthor | 2:122, Writer/Editor. Repeatable. Length = 1..32. |
RasterCommentMetadataType.IptcLanguageIdentifier | 2:135, Language identifier. Non repeatable. Length = 2..3. |
For more information about file comments, refer to RasterCodecs.ReadComment and RasterCodecs.WriteComment.