diff --git a/GExiv2.py b/GExiv2.py
index 3bab147..2948112 100644
--- a/GExiv2.py
+++ b/GExiv2.py
@@ -78,6 +78,9 @@ class Metadata(GExiv2.Metadata):
     
     def get(self, key, default=None):
         return self.get_tag_string(key) if self.has_tag(key) else default
+
+    def get_raw(self, key):
+        return self.get_tag_raw(key).get_data()
     
     def __iter__(self):
         return iter(self.get_tags())
diff --git a/gexiv2/gexiv2-metadata.cpp b/gexiv2/gexiv2-metadata.cpp
index fc7bcb4..614a1c0 100644
--- a/gexiv2/gexiv2-metadata.cpp
+++ b/gexiv2/gexiv2-metadata.cpp
@@ -868,4 +868,18 @@ const gchar* gexiv2_metadata_get_tag_type (const gchar *tag) {
     return NULL;
 }
 
+GBytes* gexiv2_metadata_get_tag_raw(GExiv2Metadata *self, const gchar* tag) {
+    g_return_val_if_fail(GEXIV2_IS_METADATA (self), NULL);
+    g_return_val_if_fail(tag != NULL, NULL);
+    g_return_val_if_fail(self->priv->image.get() != NULL, NULL);
+
+    gchar* value = gexiv2_metadata_get_tag_string (self, tag);
+
+    if (value != NULL) {
+        return g_bytes_new_take ((guint8*)value, sizeof (value));
+    }
+
+    return NULL;
+}
+
 G_END_DECLS
diff --git a/gexiv2/gexiv2-metadata.h b/gexiv2/gexiv2-metadata.h
index bc4ebd3..01fdf20 100644
--- a/gexiv2/gexiv2-metadata.h
+++ b/gexiv2/gexiv2-metadata.h
@@ -413,6 +413,16 @@ gchar**			gexiv2_metadata_get_tag_multiple	(GExiv2Metadata *self, const gchar* t
 gboolean		gexiv2_metadata_set_tag_multiple	(GExiv2Metadata *self, const gchar* tag, const gchar** values);
 
 /**
+ * gexiv2_metadata_get_tag_raw:
+ * @tag: Exiv2 tag name
+ *
+ * The Exiv2 Tag Reference can be found at http://exiv2.org/metadata.html
+ *
+ * Returns: (transfer full) (allow-none): The tag's raw value as a byte array
+ */
+GBytes*			gexiv2_metadata_get_tag_raw			(GExiv2Metadata *self, const gchar* tag);
+
+/**
  * EXIF functions
  */
 
