diff src/exiv2.cc @ 414:49c1cbe058ae

partially fixed reading embedded color profiles with exiv2
author nadvornik
date Fri, 18 Apr 2008 22:31:58 +0000
parents 0fc0a130e8cf
children 115db540bd0c
line wrap: on
line diff
--- a/src/exiv2.cc	Fri Apr 18 22:15:01 2008 +0000
+++ b/src/exiv2.cc	Fri Apr 18 22:31:58 2008 +0000
@@ -316,7 +316,19 @@
 
 char *exif_item_get_data(ExifItem *item, guint *data_len)
 {
-	return NULL;
+	try {
+		if (!item) return 0;
+		Exiv2::Metadatum *md = (Exiv2::Metadatum *)item;
+		if(data_len) *data_len = md->size();
+		char *data = (char *)g_malloc(md->size());
+		long res = md->copy((Exiv2::byte *)data, Exiv2::littleEndian /* should not matter */);
+		g_assert(res == md->size());
+		return data;
+	}
+	catch (Exiv2::AnyError& e) {
+		std::cout << "Caught Exiv2 exception '" << e << "'\n";
+		return NULL;
+	}
 }
 
 char *exif_item_get_description(ExifItem *item)