### Function

# Vips value_set_blob

#### Declaration [src]

    void
    vips_value_set_blob (
      GValue* value,
      VipsCallbackFn free_fn,
      void* data,
      size_t length
    )

#### Description [src]

Sets `value` to hold a `data`. When `value` is freed, `data` will be freed with `free_fn`. `value` also holds a note of the size of the memory area.

blobs are things like ICC profiles or EXIF data. They are relocatable, and are saved to VIPS files for you coded as base64 inside the XML. They are copied by copying reference-counted pointers.

See also

`vips_value_get_blob()`.

#### Parameters

`value`

  Type: `GValue`

  GValue to set.

  The argument will be set by the function.
  The returned data is owned by the function.

`free_fn`

  Type: `VipsCallbackFn`

  Free function for `data`.

  The argument can be `NULL`.

`data`

  Type: An array of `guint8`

  Pointer to area of memory.

  The length of the array is specified in the `length` argument.
  The called function takes ownership of the data, and is responsible for freeing it.

`length`

  Type: `size_t`

  Length of memory area.