[gexiv2/wip/fix-metadata-pixelsize: 1/3] metadata: Use proper exif tag for height
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gexiv2/wip/fix-metadata-pixelsize: 1/3] metadata: Use proper exif tag for height
- Date: Tue, 23 Oct 2018 20:30:47 +0000 (UTC)
commit 79fe2bdddc116fe9c4bfc271f4378a613df8f403
Author: Jens Georg <mail jensge org>
Date: Tue Oct 23 15:52:22 2018 +0200
metadata: Use proper exif tag for height
The height of the pixel data is in Exif.Photo.ImageLength,
not ImageHeight
Fixes #31
gexiv2/gexiv2-metadata.cpp | 4 ++--
test/data/no-metadata.jpg | Bin 0 -> 1924 bytes
test/gexiv2-regression.c | 19 +++++++++++++++++++
3 files changed, 21 insertions(+), 2 deletions(-)
---
diff --git a/gexiv2/gexiv2-metadata.cpp b/gexiv2/gexiv2-metadata.cpp
index b6600a7..1d38707 100644
--- a/gexiv2/gexiv2-metadata.cpp
+++ b/gexiv2/gexiv2-metadata.cpp
@@ -570,8 +570,8 @@ void gexiv2_metadata_set_metadata_pixel_height (GExiv2Metadata *self, gint heigh
Exiv2::XmpData& xmp_data = self->priv->image->xmpData();
exif_data ["Exif.Photo.PixelXDimension"] = static_cast<uint32_t>(height);
- exif_data ["Exif.Image.ImageHeight"] = static_cast<uint32_t>(height);
- xmp_data ["Xmp.tiff.ImageHeight"] = static_cast<uint32_t>(height);
+ exif_data ["Exif.Image.ImageLength"] = static_cast<uint32_t>(height);
+ xmp_data ["Xmp.tiff.ImageLength"] = static_cast<uint32_t>(height);
xmp_data ["Xmp.exif.PixelXDimension"] = static_cast<uint32_t>(height);
}
diff --git a/test/data/no-metadata.jpg b/test/data/no-metadata.jpg
new file mode 100644
index 0000000..3d76e87
Binary files /dev/null and b/test/data/no-metadata.jpg differ
diff --git a/test/gexiv2-regression.c b/test/gexiv2-regression.c
index 44b8d70..bfb67ae 100644
--- a/test/gexiv2-regression.c
+++ b/test/gexiv2-regression.c
@@ -14,6 +14,24 @@
#include <string.h>
+/* Regression test for https://gitlab.gnome.org/GNOME/gexiv2/issues/31 */
+static void test_ggo_31(void)
+{
+ GExiv2Metadata *meta = NULL;
+ gboolean result = FALSE;
+ GError *error = NULL;
+
+ meta = gexiv2_metadata_new();
+ g_assert_nonnull(meta);
+
+ result = gexiv2_metadata_open_path (meta, SAMPLE_PATH "/no-metadata.jpg", &error);
+ g_assert_no_error(error);
+ g_assert_true(result);
+
+ gexiv2_metadata_set_metadata_pixel_height(meta, 123);
+ g_clear_object(&meta);
+}
+
static void test_bgo_792239(void)
{
GExiv2Metadata *meta = NULL;
@@ -115,6 +133,7 @@ int main(int argc, char *argv[static argc + 1])
g_test_add_func("/bugs/gnome/730136", test_bgo_730136);
g_test_add_func("/bugs/gnome/792239", test_bgo_792239);
g_test_add_func("/bugs/gnome/790925", test_bgo_790925);
+ g_test_add_func("/bugs/gnome/gitlab/31", test_ggo_31);
return g_test_run();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]