def get(self, name): """Get an item of metadata. Fetches an item of metadata as a Python value. For example:: orientation = image.get('orientation') would fetch the image orientation. Args: name (str): The name of the piece of metadata to get. Returns: The metadata item as a Python value. Raises: :class:`.Error` """ # with old libvips, we must fetch properties (as opposed to # metadata) via VipsObject if not at_least_libvips(8, 5): gtype = super(Image, self).get_typeof(name) if gtype != 0: return super(Image, self).get(name) gv = GValue() result = vips_lib.vips_image_get(self.pointer, _to_bytes(name), gv.pointer) if result != 0: raise Error('unable to get {0}'.format(name)) return gv.get()
def set_type(self, gtype, name, value): """Set the type and value of an item of metadata. Sets the type and value of an item of metadata. Any old item of the same name is removed. See :class:`GValue` for types. Args: gtype (int): The GType of the metadata item to create. name (str): The name of the piece of metadata to create. value (mixed): The value to set as a Python value. It is converted to the ``gtype``, if possible. Returns: None Raises: None """ gv = GValue() gv.set_type(gtype) gv.set(value) vips_lib.vips_image_set(self.pointer, _to_bytes(name), gv.pointer)