diff --git a/src/actions.cpp b/src/actions.cpp index 4c024d37..aaa99917 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -340,6 +340,18 @@ namespace Action { if (!done) { done = 0 != printTag(exifData, "Exif.Nikon3.ISOSpeed"); } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsNew.ISOSpeed"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsOld.ISOSpeed"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCs5D.ISOSpeed"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCs7D.ISOSpeed"); + } std::cout << std::endl; // Exposure mode @@ -352,6 +364,18 @@ namespace Action { if (!done) { done = 0 != printTag(exifData, "Exif.CanonCs1.ExposureProgram"); } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCs7D.ExposureMode"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCs5D.ExposureMode"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsNew.ExposureMode"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsOld.ExposureMode"); + } std::cout << std::endl; // Metering mode @@ -373,6 +397,12 @@ namespace Action { if (!done) { done = 0 != printTag(exifData, "Exif.Panasonic.Macro"); } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsNew.MacroMode"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsOld.MacroMode"); + } std::cout << std::endl; // Image quality setting (compression) @@ -403,16 +433,41 @@ namespace Action { if (!done) { done = 0 != printTag(exifData, "Exif.Panasonic.Quality"); } + if (!done) { + done = 0 != printTag(exifData, "Exif.Minolta.Quality"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsNew.Quality"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsOld.Quality"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCs5D.Quality"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCs7D.Quality"); + } std::cout << std::endl; // Exif Resolution printLabel("Exif Resolution"); long xdim = 0; long ydim = 0; - md = exifData.findKey(Exiv2::ExifKey("Exif.Photo.PixelXDimension")); - if (md != exifData.end()) xdim = md->toLong(); - md = exifData.findKey(Exiv2::ExifKey("Exif.Photo.PixelYDimension")); - if (md != exifData.end()) ydim = md->toLong(); + md = exifData.findKey(Exiv2::ExifKey("Exif.Image.ImageWidth")); + if (md == exifData.end()) { + md = exifData.findKey(Exiv2::ExifKey("Exif.Photo.PixelXDimension")); + } + if (md != exifData.end()) { + xdim = md->toLong(); + } + md = exifData.findKey(Exiv2::ExifKey("Exif.Image.ImageLength")); + if (md == exifData.end()) { + md = exifData.findKey(Exiv2::ExifKey("Exif.Photo.PixelYDimension")); + } + if (md != exifData.end()) { + ydim = md->toLong(); + } if (xdim != 0 && ydim != 0) { std::cout << xdim << " x " << ydim; } @@ -446,6 +501,18 @@ namespace Action { if (!done) { done = 0 != printTag(exifData, "Exif.Panasonic.WhiteBalance"); } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCs5D.WhiteBalance"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCs7D.WhiteBalance"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsNew.WhiteBalance"); + } + if (!done) { + done = 0 != printTag(exifData, "Exif.MinoltaCsOld.WhiteBalance"); + } std::cout << std::endl; // Thumbnail diff --git a/src/tiffvisitor.cpp b/src/tiffvisitor.cpp index c21a79f0..7a4d7774 100644 --- a/src/tiffvisitor.cpp +++ b/src/tiffvisitor.cpp @@ -56,9 +56,12 @@ namespace Exiv2 { // TIFF Decoder table for special decoding requirements const TiffDecoderInfo TiffMetadataDecoder::tiffDecoderInfo_[] = { { "*", Tag::all, Group::ignr, 0 }, // Do not decode tags with group == Group::ignr - { "OLYMPUS", 0x0100, Group::olympmn, &TiffMetadataDecoder::decodeOlympThumb }, - { "NIKON", Tag::all, Group::sub0_0, 0 }, - { "NIKON", Tag::all, Group::sub0_1, &TiffMetadataDecoder::decodeToGroup } + { "OLYMPUS", 0x0100, Group::olympmn, &TiffMetadataDecoder::decodeOlympThumb }, + { "NIKON", 0x014a, Group::ifd0, 0 }, // Todo: Controversial, causes problems with Exiftool + { "NIKON", Tag::all, Group::sub0_0, &TiffMetadataDecoder::decodeToGroup }, + { "NIKON", Tag::all, Group::sub0_1, &TiffMetadataDecoder::decodeToGroup }, + { "SONY", 0x014a, Group::ifd0, 0 }, // Todo: see above + { "SONY", Tag::all, Group::sub0_0, &TiffMetadataDecoder::decodeToGroup } }; bool TiffDecoderInfo::operator==(const TiffDecoderInfo::Key& key) const