Added several TIFF tags to the reference taglist.
This commit is contained in:
parent
26b5d41255
commit
e1189d9924
95
src/tags.cpp
95
src/tags.cpp
@ -289,6 +289,13 @@ namespace Exiv2 {
|
||||
{ 34892, N_("Linear Raw") }
|
||||
};
|
||||
|
||||
//! Threshholding, tag 0x0107
|
||||
extern const TagDetails exifThreshholding[] = {
|
||||
{ 1, N_("No dithering or halftoning") },
|
||||
{ 2, N_("Ordered dither or halftone technique") },
|
||||
{ 3, N_("Randomized process") }
|
||||
};
|
||||
|
||||
//! Orientation, tag 0x0112
|
||||
extern const TagDetails exifOrientation[] = {
|
||||
{ 1, N_("top, left") },
|
||||
@ -307,6 +314,31 @@ namespace Exiv2 {
|
||||
{ 2, N_("Horizontal differencing") }
|
||||
};
|
||||
|
||||
//! InkSet, tag 0x014c
|
||||
extern const TagDetails exifInkSet[] = {
|
||||
{ 1, N_("CMYK") },
|
||||
{ 2, N_("not CMYK") }
|
||||
};
|
||||
|
||||
//! SampleFormat, tag 0x0153
|
||||
extern const TagDetails exifSampleFormat[] = {
|
||||
{ 1, N_("Unsigned integer data") },
|
||||
{ 2, N_("Two's complement signed integer data") },
|
||||
{ 3, N_("IEEE floating point data") },
|
||||
{ 4, N_("Undefined data format") }
|
||||
};
|
||||
|
||||
//! exifJpegLosslessPredictor
|
||||
extern const TagDetails exifJpegLosslessPredictor[] = {
|
||||
{ 1, N_("A") },
|
||||
{ 2, N_("B") },
|
||||
{ 3, N_("C") },
|
||||
{ 4, N_("A+B-C") },
|
||||
{ 5, N_("A+((B-C)/2)") },
|
||||
{ 6, N_("B+((A-C)/2)") },
|
||||
{ 7, N_("(A+B)/2") }
|
||||
};
|
||||
|
||||
//! YCbCrPositioning, tag 0x0213
|
||||
extern const TagDetails exifYCbCrPositioning[] = {
|
||||
{ 1, N_("Centered") },
|
||||
@ -391,6 +423,18 @@ namespace Exiv2 {
|
||||
N_("The pixel composition. In JPEG compressed data a JPEG "
|
||||
"marker is used instead of this tag."),
|
||||
ifd0Id, imgStruct, unsignedShort, EXV_PRINT_TAG(exifPhotometricInterpretation)),
|
||||
TagInfo(0x0107, "Threshholding", N_("Threshholding"),
|
||||
N_("For black and white TIFF files that represent shades of gray, "
|
||||
"the technique used to convert from gray to black and white pixels."),
|
||||
ifd0Id, imgStruct, unsignedShort, EXV_PRINT_TAG(exifThreshholding)), // TIFF tag
|
||||
TagInfo(0x0108, "CellWidth", N_("Cell Width"),
|
||||
N_("The width of the dithering or halftoning matrix used to create a "
|
||||
"dithered or halftoned bilevel file."),
|
||||
ifd0Id, imgStruct, unsignedShort, printValue), // TIFF tag
|
||||
TagInfo(0x0109, "CellLength", N_("Cell Length"),
|
||||
N_("The length of the dithering or halftoning matrix used to create a "
|
||||
"dithered or halftoned bilevel file."),
|
||||
ifd0Id, imgStruct, unsignedShort, printValue), // TIFF tag
|
||||
TagInfo(0x010a, "FillOrder", N_("Fill Order"),
|
||||
N_("The logical order of bits within a byte"),
|
||||
ifd0Id, imgStruct, unsignedShort, printValue), // TIFF tag
|
||||
@ -544,6 +588,34 @@ namespace Exiv2 {
|
||||
TagInfo(0x014a, "SubIFDs", N_("SubIFD Offsets"),
|
||||
N_("Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."),
|
||||
ifd0Id, tiffEp, unsignedLong, printValue),
|
||||
TagInfo(0x014c, "InkSet", N_("Ink Set"),
|
||||
N_("The set of inks used in a separated (PhotometricInterpretation=5) image."),
|
||||
ifd0Id, imgStruct, unsignedShort, EXV_PRINT_TAG(exifInkSet)), // TIFF tag
|
||||
TagInfo(0x014d, "InkNames", N_("Ink Names"),
|
||||
N_("The name of each ink used in a separated (PhotometricInterpretation=5) image."),
|
||||
ifd0Id, imgStruct, asciiString, printValue), // TIFF tag
|
||||
TagInfo(0x014e, "NumberOfInks", N_("Number Of Inks"),
|
||||
N_("The number of inks. Usually equal to SamplesPerPixel, unless there are extra samples."),
|
||||
ifd0Id, imgStruct, unsignedShort, printValue), // TIFF tag
|
||||
TagInfo(0x0150, "DotRange", N_("Dot Range"),
|
||||
N_("The component values that correspond to a 0% dot and 100% dot."),
|
||||
ifd0Id, imgStruct, unsignedByte, printValue), // TIFF tag
|
||||
TagInfo(0x0151, "TargetPrinter", N_("Target Printer"),
|
||||
N_("A description of the printing environment for which this separation is intended."),
|
||||
ifd0Id, imgStruct, asciiString, printValue), // TIFF tag
|
||||
TagInfo(0x0152, "ExtraSamples", N_("Extra Samples"),
|
||||
N_("Specifies that each pixel has m extra components whose interpretation "
|
||||
"is defined by one of the values listed below."),
|
||||
ifd0Id, imgStruct, unsignedShort, printValue), // TIFF tag
|
||||
TagInfo(0x0153, "SampleFormat", N_("Sample Format"),
|
||||
N_("This field specifies how to interpret each data sample in a pixel."),
|
||||
ifd0Id, imgStruct, unsignedShort, EXV_PRINT_TAG(exifSampleFormat)), // TIFF tag
|
||||
TagInfo(0x0154, "SMinSampleValue", N_("SMin Sample Value"),
|
||||
N_("This field specifies the minimum sample value."),
|
||||
ifd0Id, imgStruct, unsignedShort, printValue), // TIFF tag
|
||||
TagInfo(0x0155, "SMaxSampleValue", N_("SMax Sample Value"),
|
||||
N_("This field specifies the maximum sample value."),
|
||||
ifd0Id, imgStruct, unsignedShort, printValue), // TIFF tag
|
||||
TagInfo(0x0156, "TransferRange", N_("Transfer Range"),
|
||||
N_("Expands the range of the TransferFunction"),
|
||||
ifd0Id, imgCharacter, unsignedShort, printValue), // TIFF tag
|
||||
@ -566,6 +638,29 @@ namespace Exiv2 {
|
||||
"not be recorded. Compressed thumbnails must be recorded in no "
|
||||
"more than 64 Kbytes, including all other data to be recorded in APP1."),
|
||||
ifd0Id, recOffset, unsignedLong, printValue),
|
||||
TagInfo(0x0203, "JPEGRestartInterval", N_("JPEG Restart Interval"),
|
||||
N_("This Field indicates the length of the restart interval used "
|
||||
"in the compressed image data."),
|
||||
ifd0Id, imgStruct, unsignedShort, printValue), // TIFF tag
|
||||
TagInfo(0x0205, "JPEGLosslessPredictors", N_("JPEG Lossless Predictors"),
|
||||
N_("This Field points to a list of lossless predictor-selection "
|
||||
"values, one per component."),
|
||||
ifd0Id, imgStruct, unsignedShort, EXV_PRINT_TAG(exifJpegLosslessPredictor)), // TIFF tag
|
||||
TagInfo(0x0206, "JPEGPointTransforms", N_("JPEG Point Transforms"),
|
||||
N_("This Field points to a list of point transform values, one per component."),
|
||||
ifd0Id, imgStruct, unsignedShort, printValue), // TIFF tag
|
||||
TagInfo(0x0207, "JPEGQTables", N_("JPEG Q-Tables"),
|
||||
N_("This Field points to a list of offsets to the quantization tables, "
|
||||
"one per component."),
|
||||
ifd0Id, imgStruct, unsignedLong, printValue), // TIFF tag
|
||||
TagInfo(0x0208, "JPEGDCTables", N_("JPEG DC-Tables"),
|
||||
N_("This Field points to a list of offsets to the DC Huffman tables or "
|
||||
"the lossless Huffman tables, one per component."),
|
||||
ifd0Id, imgStruct, unsignedLong, printValue), // TIFF tag
|
||||
TagInfo(0x0209, "JPEGACTables", N_("JPEG AC-Tables"),
|
||||
N_("This Field points to a list of offsets to the Huffman AC tables, "
|
||||
"one per component."),
|
||||
ifd0Id, imgStruct, unsignedLong, printValue), // TIFF tag
|
||||
TagInfo(0x0211, "YCbCrCoefficients", N_("YCbCr Coefficients"),
|
||||
N_("The matrix coefficients for transformation from RGB to YCbCr "
|
||||
"image data. No default is given in TIFF; but here the "
|
||||
|
||||
@ -1028,6 +1028,8 @@ namespace Exiv2 {
|
||||
// IFD1
|
||||
{ 0x0111, Group::ifd1, newTiffThumbData<0x0117, Group::ifd1> },
|
||||
{ 0x0117, Group::ifd1, newTiffThumbSize<0x0111, Group::ifd1> },
|
||||
{ 0x0144, Group::ifd1, newTiffImageData<0x0145, Group::ifd1> },
|
||||
{ 0x0145, Group::ifd1, newTiffImageSize<0x0144, Group::ifd1> },
|
||||
{ 0x0201, Group::ifd1, newTiffThumbData<0x0202, Group::ifd1> },
|
||||
{ 0x0202, Group::ifd1, newTiffThumbSize<0x0201, Group::ifd1> },
|
||||
{ Tag::next, Group::ifd1, newTiffDirectory<Group::ifd2> },
|
||||
@ -1036,6 +1038,8 @@ namespace Exiv2 {
|
||||
// IFD2 (eg, in Pentax PEF and Canon CR2 files)
|
||||
{ 0x0111, Group::ifd2, newTiffImageData<0x0117, Group::ifd2> },
|
||||
{ 0x0117, Group::ifd2, newTiffImageSize<0x0111, Group::ifd2> },
|
||||
{ 0x0144, Group::ifd1, newTiffImageData<0x0145, Group::ifd2> },
|
||||
{ 0x0145, Group::ifd1, newTiffImageSize<0x0144, Group::ifd2> },
|
||||
{ 0x0201, Group::ifd2, newTiffImageData<0x0202, Group::ifd2> },
|
||||
{ 0x0202, Group::ifd2, newTiffImageSize<0x0201, Group::ifd2> },
|
||||
{ Tag::next, Group::ifd2, newTiffDirectory<Group::ifd3> },
|
||||
@ -1044,6 +1048,8 @@ namespace Exiv2 {
|
||||
// IFD3 (eg, in Canon CR2 files)
|
||||
{ 0x0111, Group::ifd3, newTiffImageData<0x0117, Group::ifd3> },
|
||||
{ 0x0117, Group::ifd3, newTiffImageSize<0x0111, Group::ifd3> },
|
||||
{ 0x0144, Group::ifd1, newTiffImageData<0x0145, Group::ifd3> },
|
||||
{ 0x0145, Group::ifd1, newTiffImageSize<0x0144, Group::ifd3> },
|
||||
{ 0x0201, Group::ifd3, newTiffImageData<0x0202, Group::ifd3> },
|
||||
{ 0x0202, Group::ifd3, newTiffImageSize<0x0201, Group::ifd3> },
|
||||
{ Tag::next, Group::ifd3, newTiffDirectory<Group::ignr> },
|
||||
@ -1676,35 +1682,29 @@ namespace Exiv2 {
|
||||
{ 0x0143, Group::ifd0 }, // Exif.Image.TileLength
|
||||
{ 0x0144, Group::ifd0 }, // Exif.Image.TileOffsets
|
||||
{ 0x0145, Group::ifd0 }, // Exif.Image.TileByteCounts
|
||||
{ 0x014c, Group::ifd0 }, // Exif.Image.InkSet -
|
||||
{ 0x014d, Group::ifd0 }, // Exif.Image.InkNames -
|
||||
{ 0x014e, Group::ifd0 }, // Exif.Image.NumberOfInks -
|
||||
{ 0x0150, Group::ifd0 }, // Exif.Image.DotRange -
|
||||
{ 0x0151, Group::ifd0 }, // Exif.Image.TargetPrinter -
|
||||
{ 0x0152, Group::ifd0 }, // Exif.Image.ExtraSamples -
|
||||
{ 0x0153, Group::ifd0 }, // Exif.Image.SampleFormat -
|
||||
{ 0x0154, Group::ifd0 }, // Exif.Image.SMinSampleValue -
|
||||
{ 0x0155, Group::ifd0 }, // Exif.Image.SMaxSampleValue -
|
||||
{ 0x014c, Group::ifd0 }, // Exif.Image.InkSet
|
||||
{ 0x014d, Group::ifd0 }, // Exif.Image.InkNames
|
||||
{ 0x014e, Group::ifd0 }, // Exif.Image.NumberOfInks
|
||||
{ 0x0150, Group::ifd0 }, // Exif.Image.DotRange
|
||||
{ 0x0151, Group::ifd0 }, // Exif.Image.TargetPrinter
|
||||
{ 0x0152, Group::ifd0 }, // Exif.Image.ExtraSamples
|
||||
{ 0x0153, Group::ifd0 }, // Exif.Image.SampleFormat
|
||||
{ 0x0154, Group::ifd0 }, // Exif.Image.SMinSampleValue
|
||||
{ 0x0155, Group::ifd0 }, // Exif.Image.SMaxSampleValue
|
||||
{ 0x0156, Group::ifd0 }, // Exif.Image.TransferRange
|
||||
{ 0x0200, Group::ifd0 }, // Exif.Image.JPEGProc
|
||||
{ 0x0201, Group::ifd0 }, // Exif.Image.JPEGInterchangeFormat
|
||||
{ 0x0202, Group::ifd0 }, // Exif.Image.JPEGInterchangeFormatLength
|
||||
{ 0x0203, Group::ifd0 }, // Exif.Image.JPEGRestartInterval -
|
||||
{ 0x0205, Group::ifd0 }, // Exif.Image.JPEGLosslessPredictors -
|
||||
{ 0x0206, Group::ifd0 }, // Exif.Image.JPEGPointTransforms -
|
||||
{ 0x0207, Group::ifd0 }, // Exif.Image.JPEGQTables -
|
||||
{ 0x0208, Group::ifd0 }, // Exif.Image.JPEGDCTables -
|
||||
{ 0x0209, Group::ifd0 }, // Exif.Image.JPEGACTables -
|
||||
{ 0x0203, Group::ifd0 }, // Exif.Image.JPEGRestartInterval
|
||||
{ 0x0205, Group::ifd0 }, // Exif.Image.JPEGLosslessPredictors
|
||||
{ 0x0206, Group::ifd0 }, // Exif.Image.JPEGPointTransforms
|
||||
{ 0x0207, Group::ifd0 }, // Exif.Image.JPEGQTables
|
||||
{ 0x0208, Group::ifd0 }, // Exif.Image.JPEGDCTables
|
||||
{ 0x0209, Group::ifd0 }, // Exif.Image.JPEGACTables
|
||||
{ 0x0211, Group::ifd0 }, // Exif.Image.YCbCrCoefficients
|
||||
{ 0x0212, Group::ifd0 }, // Exif.Image.YCbCSubSampling
|
||||
{ 0x0213, Group::ifd0 }, // Exif.Image.YCbCrPositioning
|
||||
{ 0x0214, Group::ifd0 }, // Exif.Image.ReferenceBlackWhite
|
||||
|
||||
/* other unknown TIFF tags (not image tags)
|
||||
107, Thresholding -
|
||||
108, CellWidth -
|
||||
109, CellLength -
|
||||
*/
|
||||
};
|
||||
|
||||
if (!hasImageTags_) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user