diff --git a/src/tiffimage.cpp b/src/tiffimage.cpp index cf0b2b95..b950d43e 100644 --- a/src/tiffimage.cpp +++ b/src/tiffimage.cpp @@ -1640,27 +1640,73 @@ namespace Exiv2 { { } - //! List of TIFF image tags - extern const TiffImgTagStruct tiffImageTags[] = { - { 0x0100, Group::ifd0 }, // Exif.Image.ImageWidth - { 0x0101, Group::ifd0 }, // Exif.Image.ImageLength - { 0x0102, Group::ifd0 }, // Exif.Image.BitsPerSample - { 0x0103, Group::ifd0 }, // Exif.Image.Compression - { 0x0106, Group::ifd0 }, // Exif.Image.PhotometricInterpretation - { 0x0111, Group::ifd0 }, // Exif.Image.StripOffsets - { 0x0115, Group::ifd0 }, // Exif.Image.SamplesPerPixel - { 0x0116, Group::ifd0 }, // Exif.Image.RowsPerStrip - { 0x0117, Group::ifd0 }, // Exif.Image.StripByteCounts - { 0x011a, Group::ifd0 }, // Exif.Image.XResolution - { 0x011b, Group::ifd0 }, // Exif.Image.YResolution - { 0x0128, Group::ifd0 }, // Exif.Image.ResolutionUnit - { 0x0140, Group::ifd0 } // Exif.Image.ColorMap - }; - bool TiffHeader::isImageTag( uint16_t tag, uint16_t group, const PrimaryGroups* pPrimaryGroups) const { + //! List of TIFF image tags + static const TiffImgTagStruct tiffImageTags[] = { + { 0x00fe, Group::ifd0 }, // Exif.Image.NewSubfileType + { 0x00ff, Group::ifd0 }, // Exif.Image.SubfileType - + { 0x0100, Group::ifd0 }, // Exif.Image.ImageWidth + { 0x0101, Group::ifd0 }, // Exif.Image.ImageLength + { 0x0102, Group::ifd0 }, // Exif.Image.BitsPerSample + { 0x0103, Group::ifd0 }, // Exif.Image.Compression + { 0x0106, Group::ifd0 }, // Exif.Image.PhotometricInterpretation + { 0x010a, Group::ifd0 }, // Exif.Image.FillOrder + { 0x0111, Group::ifd0 }, // Exif.Image.StripOffsets + { 0x0115, Group::ifd0 }, // Exif.Image.SamplesPerPixel + { 0x0116, Group::ifd0 }, // Exif.Image.RowsPerStrip + { 0x0117, Group::ifd0 }, // Exif.Image.StripByteCounts + { 0x011a, Group::ifd0 }, // Exif.Image.XResolution + { 0x011b, Group::ifd0 }, // Exif.Image.YResolution + { 0x011c, Group::ifd0 }, // Exif.Image.PlanarConfiguration + { 0x0122, Group::ifd0 }, // Exif.Image.GrayResponseUnit - + { 0x0123, Group::ifd0 }, // Exif.Image.GrayResponseCurve - + { 0x0124, Group::ifd0 }, // Exif.Image.T4Options - + { 0x0125, Group::ifd0 }, // Exif.Image.T6Options - + { 0x0128, Group::ifd0 }, // Exif.Image.ResolutionUnit + { 0x012d, Group::ifd0 }, // Exif.Image.TransferFunction + { 0x013d, Group::ifd0 }, // Exif.Image.Predictor - + { 0x013e, Group::ifd0 }, // Exif.Image.WhitePoint + { 0x013f, Group::ifd0 }, // Exif.Image.PrimaryChromaticities + { 0x0140, Group::ifd0 }, // Exif.Image.ColorMap + { 0x0141, Group::ifd0 }, // Exif.Image.HalftoneHints - + { 0x0142, Group::ifd0 }, // Exif.Image.TileWidth + { 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 - + { 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 - + { 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_) { #ifdef DEBUG std::cerr << "No image tags in this image\n";