aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYujie Qin <yujieqin@google.com>2016-04-14 14:40:21 +0200
committerYujie Qin <yujieqin@google.com>2016-04-14 14:40:21 +0200
commitbe908191d0a6883a95333bdc0bca749c9b830969 (patch)
tree800b0582f6280d733f14ff084d81c7cb32202ee4
parent2f5d8eafb5648056703d6b3dec237d293f75f99e (diff)
downloadpiex-be908191d0a6883a95333bdc0bca749c9b830969.tar.gz
* Adjust the max thumbnail size to 512 pixel * Reads the correct full dimensions for DNGs which are stored in DefaultCropSize of the main image
-rw-r--r--src/tiff_parser.cc31
-rw-r--r--src/tiff_parser.h2
2 files changed, 17 insertions, 16 deletions
diff --git a/src/tiff_parser.cc b/src/tiff_parser.cc
index 697e320..00bb944 100644
--- a/src/tiff_parser.cc
+++ b/src/tiff_parser.cc
@@ -556,7 +556,22 @@ bool GetFullDimension32(const TiffDirectory& tiff_directory,
}
}
- if (tiff_directory.Has(kExifTagWidth) && tiff_directory.Has(kExifTagHeight)) {
+ if (tiff_directory.Has(kExifTagDefaultCropSize)) {
+ std::vector<std::uint32_t> crop(2);
+ std::vector<Rational> crop_rational(2);
+ if (tiff_directory.Get(kExifTagDefaultCropSize, &crop)) {
+ *width = crop[0];
+ *height = crop[1];
+ } else if (tiff_directory.Get(kExifTagDefaultCropSize, &crop_rational) &&
+ crop_rational[0].denominator != 0 &&
+ crop_rational[1].denominator != 0) {
+ *width = crop_rational[0].numerator / crop_rational[0].denominator;
+ *height = crop_rational[1].numerator / crop_rational[1].denominator;
+ } else {
+ return false;
+ }
+ } else if (tiff_directory.Has(kExifTagWidth) &&
+ tiff_directory.Has(kExifTagHeight)) {
if (!tiff_directory.Get(kExifTagWidth, width) ||
!tiff_directory.Get(kExifTagHeight, height)) {
return false;
@@ -585,20 +600,6 @@ bool GetFullDimension32(const TiffDirectory& tiff_directory,
} else {
return false;
}
- } else if (tiff_directory.Has(kExifTagDefaultCropSize)) {
- std::vector<std::uint32_t> crop(2);
- std::vector<Rational> crop_rational(2);
- if (tiff_directory.Get(kExifTagDefaultCropSize, &crop)) {
- *width = crop[0];
- *height = crop[1];
- } else if (tiff_directory.Get(kExifTagDefaultCropSize, &crop_rational) &&
- crop_rational[0].denominator != 0 &&
- crop_rational[1].denominator != 0) {
- *width = crop_rational[0].numerator / crop_rational[0].denominator;
- *height = crop_rational[1].numerator / crop_rational[1].denominator;
- } else {
- return false;
- }
}
return true;
}
diff --git a/src/tiff_parser.h b/src/tiff_parser.h
index a19b71e..3cb9d7e 100644
--- a/src/tiff_parser.h
+++ b/src/tiff_parser.h
@@ -28,7 +28,7 @@
namespace piex {
// Specifies the maximum number of pixels for thumbnails in each direction.
-const int kThumbnailMaxDimension = 256;
+const int kThumbnailMaxDimension = 512;
// Specifies all tags that might be of interest to get the preview data.
enum GpsTags {