### Method

# Vips Image get

#### Declaration [src]

    int
    vips_image_get (
      const VipsImage* image,
      const char* name,
      GValue* value_copy
    )

#### Description [src]

Fill `value_copy` with a copy of the header field. `value_copy` must be zeroed but uninitialised.

This will return -1 and add a message to the error buffer if the field does not exist. Use `vips_image_get_typeof()` to test for the existence of a field first if you are not certain it will be there.

For example, to read a double from an image (though of course you would use `vips_image_get_double()` in practice):

    GValue value = G_VALUE_INIT;
    double d;

    if (vips_image_get(image, name, &value))
        return -1;

    if (G_VALUE_TYPE(&value) != G_TYPE_DOUBLE) {
        vips_error("mydomain",
            _("field \"%s\" is of type %s, not double"),
            name,
            g_type_name(G_VALUE_TYPE(&value)));
        g_value_unset(&value);
        return -1;
    }

    d = g_value_get_double(&value);
    g_value_unset(&value);

See also

`vips_image_get_typeof()`, `vips_image_get_double()`.

#### Parameters

`name`

  Type: `const char*`

  The name to fetch.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`value_copy`

  Type: `GValue`

  The `GValue` is copied into this.

  The argument will be set by the function.
  The caller of the method takes ownership of the returned data, and is responsible for freeing it.

#### Return value

Type: `int`

0 on success, -1 otherwise.