[gexiv2] Add Function to save to XMP sidecar files
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gexiv2] Add Function to save to XMP sidecar files
- Date: Mon, 10 Apr 2017 20:31:34 +0000 (UTC)
commit e28b1936b5bc77dc6d3534b748bb225e245be3e9
Author: Jens Georg <mail jensge org>
Date: Mon Apr 10 22:30:37 2017 +0200
Add Function to save to XMP sidecar files
Signed-off-by: Jens Georg <mail jensge org>
docs/reference/gexiv2-sections.txt | 1 +
gexiv2/gexiv2-metadata.cpp | 13 +++++++++++++
gexiv2/gexiv2-metadata.h | 15 +++++++++++++++
3 files changed, 29 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/gexiv2-sections.txt b/docs/reference/gexiv2-sections.txt
index b84f450..6f6b198 100644
--- a/docs/reference/gexiv2-sections.txt
+++ b/docs/reference/gexiv2-sections.txt
@@ -23,6 +23,7 @@ gexiv2_metadata_open_path
gexiv2_metadata_open_buf
gexiv2_metadata_open_stream
gexiv2_metadata_from_app1_segment
+gexiv2_metadata_save_external
gexiv2_metadata_save_file
gexiv2_metadata_save_stream
gexiv2_metadata_has_tag
diff --git a/gexiv2/gexiv2-metadata.cpp b/gexiv2/gexiv2-metadata.cpp
index 13d685d..9f9b3cf 100644
--- a/gexiv2/gexiv2-metadata.cpp
+++ b/gexiv2/gexiv2-metadata.cpp
@@ -22,6 +22,7 @@
#include <glib-object.h>
#include <gio/gio.h>
#include <exiv2/image.hpp>
+#include <exiv2/xmpsidecar.hpp>
#include <exiv2/exif.hpp>
#include <exiv2/iptc.hpp>
#include <exiv2/xmp.hpp>
@@ -311,6 +312,18 @@ static gboolean gexiv2_metadata_save_internal (GExiv2Metadata *self, Exiv2::Imag
return TRUE;
}
+gboolean gexiv2_metadata_save_external (GExiv2Metadata *self, const gchar *path, GError **error) {
+ g_return_val_if_fail (GEXIV2_IS_METADATA (self), FALSE);
+
+ try {
+ return gexiv2_metadata_save_internal (self, Exiv2::ImageFactory::create(Exiv2::ImageType::xmp,
path), error);
+ } catch (Exiv2::Error &e) {
+ g_set_error_literal (error, g_quark_from_string ("GExiv2"), e.code (), e.what ());
+ }
+
+ return FALSE;
+}
+
gboolean gexiv2_metadata_save_file (GExiv2Metadata *self, const gchar *path, GError **error) {
g_return_val_if_fail (GEXIV2_IS_METADATA (self), FALSE);
diff --git a/gexiv2/gexiv2-metadata.h b/gexiv2/gexiv2-metadata.h
index fd6b64b..768319b 100644
--- a/gexiv2/gexiv2-metadata.h
+++ b/gexiv2/gexiv2-metadata.h
@@ -267,6 +267,21 @@ gboolean gexiv2_metadata_open_stream (GExiv2Metadata
*self, ManagedStreamCall
gboolean gexiv2_metadata_from_app1_segment (GExiv2Metadata *self, const guint8 *data,
glong n_data, GError **error);
/**
+ * gexiv2_metadata_save_external:
+ * @self: An instance of #GExiv2Metadata
+ * @path: Path to the file you want to save to.
+ * @error: (allow-none): A return location for a #GError or %NULL
+ *
+ * Saves the metadata to the specified using an XMP sidecar file.
+ *
+ * Returns: Boolean success indicator.
+ *
+ * Since: 0.10.6
+ */
+gboolean gexiv2_metadata_save_external (GExiv2Metadata *self, const gchar
*path, GError **error);
+
+
+/**
* gexiv2_metadata_save_file:
* @self: An instance of #GExiv2Metadata
* @path: Path to the file you want to save to.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]