StudyGlib/app/src/main/cpp/study/type.c
//============== blob ===================
/**
 * vips_value_set_blob:
 * @value: (out): GValue to set
 * @free_fn: (scope async): free function for @data
 * @data: pointer to area of memory
 * @length: length of memory area
 *
 * 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()
 */


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.


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 .
void
vips_value_set_blob( GValue *value,
                     VipsCallbackFn free_fn, const void *data, size_t length )
{
    VipsBlob *blob;
    g_assert( G_VALUE_TYPE( value ) == VIPS_TYPE_BLOB );
    blob = vips_blob_new( free_fn, data, length );
    g_value_set_boxed( value, blob );
    vips_area_unref( VIPS_AREA( blob ) );
}
void vips_value_set_blob ( GValue * value , VipsCallbackFn free_fn , const void * data , size_t length ) { VipsBlob * blob ; g_assert ( G_VALUE_TYPE ( value ) == VIPS_TYPE_BLOB ) ; blob = vips_blob_new ( free_fn , data , length ) ; g_value_set_boxed ( value , blob ) ; vips_area_unref ( VIPS_AREA ( blob ) ) ; }
blob
 vips_value_set_blob:
 @value: (out): GValue to set
 @free_fn: (scope async): free function for @data
 @data: pointer to area of memory
 @length: length of memory area
blob vips_value_set_blob : @value : ( out ) : GValue to set @free_fn : ( scope async ) : free function for @data @data : pointer to area of memory @length : length of memory area