[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:40:42 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=d69961b
The following commit has been merged in the master branch:
commit d69961b5b813343607c9ef8b0d0878a0a841bafd
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Sat Jul 25 16:11:39 2009 +0000
#641: Use image dimensions of the primary image.
---
src/actions.cpp | 30 ++++++++++++++++++------------
src/tiffimage.cpp | 28 ++++++++++++++++++++++++++--
src/tiffimage.hpp | 6 ++++++
3 files changed, 50 insertions(+), 14 deletions(-)
diff --git a/src/actions.cpp b/src/actions.cpp
index a315ec3..90f22e5 100644
--- a/src/actions.cpp
+++ b/src/actions.cpp
@@ -375,19 +375,25 @@ namespace Action {
printLabel(_("Exif Resolution"));
long xdim = 0;
long ydim = 0;
- md = exifData.findKey(Exiv2::ExifKey("Exif.Image.ImageWidth"));
- if (md == exifData.end()) {
- md = exifData.findKey(Exiv2::ExifKey("Exif.Photo.PixelXDimension"));
- }
- if (md != exifData.end() && md->count() > 0) {
- xdim = md->toLong();
+ if (image->mimeType() == "image/tiff") {
+ xdim = image->pixelWidth();
+ ydim = image->pixelHeight();
}
- md = exifData.findKey(Exiv2::ExifKey("Exif.Image.ImageLength"));
- if (md == exifData.end()) {
- md = exifData.findKey(Exiv2::ExifKey("Exif.Photo.PixelYDimension"));
- }
- if (md != exifData.end() && md->count() > 0) {
- ydim = md->toLong();
+ else {
+ md = exifData.findKey(Exiv2::ExifKey("Exif.Image.ImageWidth"));
+ if (md == exifData.end()) {
+ md = exifData.findKey(Exiv2::ExifKey("Exif.Photo.PixelXDimension"));
+ }
+ if (md != exifData.end() && md->count() > 0) {
+ 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() && md->count() > 0) {
+ ydim = md->toLong();
+ }
}
if (xdim != 0 && ydim != 0) {
std::cout << xdim << " x " << ydim;
diff --git a/src/tiffimage.cpp b/src/tiffimage.cpp
index 4b4045e..d56b472 100644
--- a/src/tiffimage.cpp
+++ b/src/tiffimage.cpp
@@ -84,9 +84,32 @@ namespace Exiv2 {
{
} // TiffImage::TiffImage
+ std::string TiffImage::primaryGroup() const
+ {
+ static const char* keys[] = {
+ "Exif.Image.NewSubfileType",
+ "Exif.SubImage1.NewSubfileType",
+ "Exif.SubImage2.NewSubfileType",
+ "Exif.SubImage3.NewSubfileType",
+ "Exif.SubImage4.NewSubfileType"
+ };
+ // Find the group of the primary image, default to "Image"
+ std::string groupName = "Image";
+ for (unsigned int i = 0; i < EXV_COUNTOF(keys); ++i) {
+ ExifData::const_iterator md = exifData_.findKey(ExifKey(keys[i]));
+ // Is it the primary image?
+ if (md != exifData_.end() && md->count() > 0 && md->toLong() == 0) {
+ groupName = md->groupName();
+ break;
+ }
+ }
+ return groupName;
+ }
+
int TiffImage::pixelWidth() const
{
- ExifData::const_iterator imageWidth = exifData_.findKey(Exiv2::ExifKey("Exif.Image.ImageWidth"));
+ ExifKey key(std::string("Exif.") + primaryGroup() + std::string(".ImageWidth"));
+ ExifData::const_iterator imageWidth = exifData_.findKey(key);
if (imageWidth != exifData_.end() && imageWidth->count() > 0) {
return imageWidth->toLong();
}
@@ -95,7 +118,8 @@ namespace Exiv2 {
int TiffImage::pixelHeight() const
{
- ExifData::const_iterator imageHeight = exifData_.findKey(Exiv2::ExifKey("Exif.Image.ImageLength"));
+ ExifKey key(std::string("Exif.") + primaryGroup() + std::string(".ImageLength"));
+ ExifData::const_iterator imageHeight = exifData_.findKey(key);
if (imageHeight != exifData_.end() && imageHeight->count() > 0) {
return imageHeight->toLong();
}
diff --git a/src/tiffimage.hpp b/src/tiffimage.hpp
index 71c2fa3..b3e665e 100644
--- a/src/tiffimage.hpp
+++ b/src/tiffimage.hpp
@@ -103,6 +103,12 @@ namespace Exiv2 {
TiffImage& operator=(const TiffImage& rhs);
//@}
+ //! @name Accessors
+ //@{
+ //! Return the group name of the group with the primary image.
+ std::string primaryGroup() const;
+ //@}
+
}; // class TiffImage
/*!
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list