cd-icc

## cd-icc cd-icc — An object to read and write a binary ICC profile |

## Synopsis

    #define             CD_ICC_ERROR
    #define             CD_ICC_TYPE_ERROR
    enum                CdIccError;
    void                (*_cd_icc_reserved1)                (void);
    void                (*_cd_icc_reserved2)                (void);
    void                (*_cd_icc_reserved3)                (void);
    void                (*_cd_icc_reserved4)                (void);
    void                (*_cd_icc_reserved5)                (void);
    void                (*_cd_icc_reserved6)                (void);
    void                (*_cd_icc_reserved7)                (void);
    void                (*_cd_icc_reserved8)                (void);
    enum                CdIccLoadFlags;
    enum                CdIccSaveFlags;
    GQuark              cd_icc_error_quark                  (void);
    CdIcc *             cd_icc_new                          (void);
    gboolean            cd_icc_load_data                    (CdIcc *icc,
                                                             const guint8 *data,
                                                             gsize data_len,
                                                             CdIccLoadFlags flags,
                                                             GError **error);
    gboolean            cd_icc_load_file                    (CdIcc *icc,
                                                             GFile *file,
                                                             CdIccLoadFlags flags,
                                                             GCancellable *cancellable,
                                                             GError **error);
    gboolean            cd_icc_load_fd                      (CdIcc *icc,
                                                             gint fd,
                                                             CdIccLoadFlags flags,
                                                             GError **error);
    gboolean            cd_icc_load_handle                  (CdIcc *icc,
                                                             gpointer handle,
                                                             CdIccLoadFlags flags,
                                                             GError **error);
    GBytes *            cd_icc_save_data                    (CdIcc *icc,
                                                             CdIccSaveFlags flags,
                                                             GError **error);
    gboolean            cd_icc_save_file                    (CdIcc *icc,
                                                             GFile *file,
                                                             CdIccSaveFlags flags,
                                                             GCancellable *cancellable,
                                                             GError **error);
    gchar *             cd_icc_to_string                    (CdIcc *icc);
    gpointer            cd_icc_get_handle                   (CdIcc *icc);
    guint32             cd_icc_get_size                     (CdIcc *icc);
    const gchar *       cd_icc_get_filename                 (CdIcc *icc);
    void                cd_icc_set_filename                 (CdIcc *icc,
                                                             const gchar *filename);
    gdouble             cd_icc_get_version                  (CdIcc *icc);
    void                cd_icc_set_version                  (CdIcc *icc,
                                                             gdouble version);
    CdProfileKind       cd_icc_get_kind                     (CdIcc *icc);
    void                cd_icc_set_kind                     (CdIcc *icc,
                                                             CdProfileKind kind);
    CdColorspace        cd_icc_get_colorspace               (CdIcc *icc);
    void                cd_icc_set_colorspace               (CdIcc *icc,
                                                             CdColorspace colorspace);
    GHashTable *        cd_icc_get_metadata                 (CdIcc *icc);
    const gchar *       cd_icc_get_metadata_item            (CdIcc *icc,
                                                             const gchar *key);
    void                cd_icc_add_metadata                 (CdIcc *icc,
                                                             const gchar *key,
                                                             const gchar *value);
    void                cd_icc_remove_metadata              (CdIcc *icc,
                                                             const gchar *key);
    GPtrArray *         cd_icc_get_named_colors             (CdIcc *icc);
    gboolean            cd_icc_get_can_delete               (CdIcc *icc);
    GDateTime *         cd_icc_get_created                  (CdIcc *icc);
    const gchar *       cd_icc_get_checksum                 (CdIcc *icc);
    const gchar *       cd_icc_get_description              (CdIcc *icc,
                                                             const gchar *locale,
                                                             GError **error);
    const gchar *       cd_icc_get_copyright                (CdIcc *icc,
                                                             const gchar *locale,
                                                             GError **error);
    const gchar *       cd_icc_get_manufacturer             (CdIcc *icc,
                                                             const gchar *locale,
                                                             GError **error);
    const gchar *       cd_icc_get_model                    (CdIcc *icc,
                                                             const gchar *locale,
                                                             GError **error);
    void                cd_icc_set_description              (CdIcc *icc,
                                                             const gchar *locale,
                                                             const gchar *value);
    void                cd_icc_set_description_items        (CdIcc *icc,
                                                             GHashTable *values);
    void                cd_icc_set_copyright                (CdIcc *icc,
                                                             const gchar *locale,
                                                             const gchar *value);
    void                cd_icc_set_copyright_items          (CdIcc *icc,
                                                             GHashTable *values);
    void                cd_icc_set_manufacturer             (CdIcc *icc,
                                                             const gchar *locale,
                                                             const gchar *value);
    void                cd_icc_set_manufacturer_items       (CdIcc *icc,
                                                             GHashTable *values);
    void                cd_icc_set_model                    (CdIcc *icc,
                                                             const gchar *locale,
                                                             const gchar *value);
    void                cd_icc_set_model_items              (CdIcc *icc,
                                                             GHashTable *values);
    const CdColorXYZ *  cd_icc_get_red                      (CdIcc *icc);
    const CdColorXYZ *  cd_icc_get_green                    (CdIcc *icc);
    const CdColorXYZ *  cd_icc_get_blue                     (CdIcc *icc);
    const CdColorXYZ *  cd_icc_get_white                    (CdIcc *icc);
    guint               cd_icc_get_temperature              (CdIcc *icc);
    GArray *            cd_icc_get_warnings                 (CdIcc *icc);
    gboolean            cd_icc_create_from_edid             (CdIcc *icc,
                                                             gdouble gamma_value,
                                                             const CdColorYxy *red,
                                                             const CdColorYxy *green,
                                                             const CdColorYxy *blue,
                                                             const CdColorYxy *white,
                                                             GError **error);
    GPtrArray *         cd_icc_get_vcgt                     (CdIcc *icc,
                                                             guint size,
                                                             GError **error);
    gboolean            cd_icc_set_vcgt                     (CdIcc *icc,
                                                             GPtrArray *vcgt,
                                                             GError **error);
    GPtrArray *         cd_icc_get_response                 (CdIcc *icc,
                                                             guint size,
                                                             GError **error);

## Description

## Details

### CD_ICC_ERROR

    #define CD_ICC_ERROR		(cd_icc_error_quark ())

### CD_ICC_TYPE_ERROR

    #define CD_ICC_TYPE_ERROR (cd_icc_error_get_type ())

### enum CdIccError

    typedef enum {
    	CD_ICC_ERROR_FAILED_TO_OPEN,
    	CD_ICC_ERROR_FAILED_TO_PARSE,
    	CD_ICC_ERROR_INVALID_LOCALE,
    	CD_ICC_ERROR_NO_DATA,
    	CD_ICC_ERROR_FAILED_TO_SAVE,
    	CD_ICC_ERROR_FAILED_TO_CREATE,
    	CD_ICC_ERROR_INVALID_COLORSPACE,
    	CD_ICC_ERROR_LAST
    } CdIccError;

The ICC error code.

`CD_ICC_ERROR_FAILED_TO_OPEN` | Failed to open file
`CD_ICC_ERROR_FAILED_TO_PARSE` | Failed to parse data
`CD_ICC_ERROR_INVALID_LOCALE` | Locale was invalid
`CD_ICC_ERROR_NO_DATA` | No data to read
`CD_ICC_ERROR_FAILED_TO_SAVE` | Failed to save file
`CD_ICC_ERROR_FAILED_TO_CREATE` | Failed to create file
`CD_ICC_ERROR_INVALID_COLORSPACE` | Invalid colorspace
`CD_ICC_ERROR_LAST` |

Since 0.1.32

### _cd_icc_reserved1 ()

    void                (*_cd_icc_reserved1)                (void);

### _cd_icc_reserved2 ()

    void                (*_cd_icc_reserved2)                (void);

### _cd_icc_reserved3 ()

    void                (*_cd_icc_reserved3)                (void);

### _cd_icc_reserved4 ()

    void                (*_cd_icc_reserved4)                (void);

### _cd_icc_reserved5 ()

    void                (*_cd_icc_reserved5)                (void);

### _cd_icc_reserved6 ()

    void                (*_cd_icc_reserved6)                (void);

### _cd_icc_reserved7 ()

    void                (*_cd_icc_reserved7)                (void);

### _cd_icc_reserved8 ()

    void                (*_cd_icc_reserved8)                (void);

### enum CdIccLoadFlags

    typedef enum {
    	CD_ICC_LOAD_FLAGS_NONE		= 0,
    	CD_ICC_LOAD_FLAGS_NAMED_COLORS = (1 << 0),
    	CD_ICC_LOAD_FLAGS_TRANSLATIONS = (1 << 1),
    	CD_ICC_LOAD_FLAGS_METADATA = (1 << 2),
    	CD_ICC_LOAD_FLAGS_FALLBACK_MD5 = (1 << 3),
    	CD_ICC_LOAD_FLAGS_PRIMARIES = (1 << 4),
    	/* new entries go here: */
    	CD_ICC_LOAD_FLAGS_ALL		= 0xff,
    	CD_ICC_LOAD_FLAGS_LAST
    } CdIccLoadFlags;

Flags used when loading an ICC profile.

`CD_ICC_LOAD_FLAGS_NONE` | No flags set.
`CD_ICC_LOAD_FLAGS_NAMED_COLORS` | Parse any named colors in the profile.
`CD_ICC_LOAD_FLAGS_TRANSLATIONS` | Parse all translations in the profile.
`CD_ICC_LOAD_FLAGS_METADATA` | Parse the metadata in the profile.
`CD_ICC_LOAD_FLAGS_FALLBACK_MD5` | Calculate the profile MD5 if a profile ID was not supplied in the profile.
`CD_ICC_LOAD_FLAGS_PRIMARIES` | Parse the primaries in the profile.
`CD_ICC_LOAD_FLAGS_ALL` |
`CD_ICC_LOAD_FLAGS_LAST` |

Since 0.1.32

### enum CdIccSaveFlags

    typedef enum {
    	CD_ICC_SAVE_FLAGS_NONE		= 0,
    	CD_ICC_SAVE_FLAGS_LAST
    } CdIccSaveFlags;

Flags used when saving an ICC profile.

`CD_ICC_SAVE_FLAGS_NONE` | No flags set.
`CD_ICC_SAVE_FLAGS_LAST` |

Since 0.1.32

### cd_icc_error_quark ()

    GQuark              cd_icc_error_quark                  (void);

Returns : | An error quark.

Since 0.1.32

### cd_icc_new ()

    CdIcc *             cd_icc_new                          (void);

Creates a new CdIcc object.

Returns : | a new CdIcc object.

Since 0.1.32

### cd_icc_load_data ()

    gboolean            cd_icc_load_data                    (CdIcc *icc,
                                                             const guint8 *data,
                                                             gsize data_len,
                                                             CdIccLoadFlags flags,
                                                             GError **error);

Loads an ICC profile from raw byte data.

`icc` : | a CdIcc instance.
`data` : | binary data
`data_len` : | Length of `data`
`flags` : | a set of CdIccLoadFlags
`error` : | A GError or `NULL`

Since 0.1.32

### cd_icc_load_file ()

    gboolean            cd_icc_load_file                    (CdIcc *icc,
                                                             GFile *file,
                                                             CdIccLoadFlags flags,
                                                             GCancellable *cancellable,
                                                             GError **error);

Loads an ICC profile from a local or remote file.

`icc` : | a CdIcc instance.
`file` : | a GFile
`flags` : | a set of CdIccLoadFlags
`cancellable` : | A GCancellable or `NULL`
`error` : | A GError or `NULL`

Since 0.1.32

### cd_icc_load_fd ()

    gboolean            cd_icc_load_fd                      (CdIcc *icc,
                                                             gint fd,
                                                             CdIccLoadFlags flags,
                                                             GError **error);

Loads an ICC profile from an open file descriptor.

`icc` : | a CdIcc instance.
`fd` : | a file descriptor
`flags` : | a set of CdIccLoadFlags
`error` : | A GError or `NULL`

Since 0.1.32

### cd_icc_load_handle ()

    gboolean            cd_icc_load_handle                  (CdIcc *icc,
                                                             gpointer handle,
                                                             CdIccLoadFlags flags,
                                                             GError **error);

Set the internal cmsHPROFILE instance. This may be required if you create the profile using `cmsCreateRGBProfile()` and then want to use the functionality in CdIcc.

Do not call `cmsCloseProfile()` on `handle` in the caller, this will be done when the `icc` object is finalized. Treat the profile like it's been adopted by this module.

Additionally, this function cannot be called more than once, and also can't be called if `cd_icc_load_file()` has previously been used on the `icc` object.

`icc` : | a CdIcc instance.
`handle` : | a cmsHPROFILE instance
`flags` : | a set of CdIccLoadFlags
`error` : | A GError or `NULL`

Since 0.1.33

### cd_icc_save_data ()

    GBytes *            cd_icc_save_data                    (CdIcc *icc,
                                                             CdIccSaveFlags flags,
                                                             GError **error);

Saves an ICC profile to an allocated memory location.

Return vale: A GBytes structure, or `NULL` for error

`icc` : | a CdIcc instance.
`flags` : | a set of CdIccSaveFlags
`error` : | A GError or `NULL`

Since 1.0.2

### cd_icc_save_file ()

    gboolean            cd_icc_save_file                    (CdIcc *icc,
                                                             GFile *file,
                                                             CdIccSaveFlags flags,
                                                             GCancellable *cancellable,
                                                             GError **error);

Saves an ICC profile to a local or remote file.

Return vale: `TRUE` for success.

`icc` : | a CdIcc instance.
`file` : | a GFile
`flags` : | a set of CdIccSaveFlags
`cancellable` : | A GCancellable or `NULL`
`error` : | A GError or `NULL`

Since 0.1.32

### cd_icc_to_string ()

    gchar *             cd_icc_to_string                    (CdIcc *icc);

Returns a string representation of the ICC profile.

`icc` : | a CdIcc instance.
Returns : | an allocated string

Since 0.1.32

### cd_icc_get_handle ()

    gpointer            cd_icc_get_handle                   (CdIcc *icc);

Return the cmsHPROFILE instance used locally. This may be required if you are using the profile in a transform.

`icc` : | a CdIcc instance.
Returns : | Do not call `cmsCloseProfile()` on this value!. [transfer none]

### cd_icc_get_size ()

    guint32             cd_icc_get_size                     (CdIcc *icc);

Gets the ICC profile file size

Returns : | The size in bytes, or 0 for unknown.

Since 0.1.32

### cd_icc_get_filename ()

    const gchar *       cd_icc_get_filename                 (CdIcc *icc);

Gets the filename of the ICC data, if one exists.

`icc` : | A valid CdIcc
Returns : | A filename, or `NULL`

Since 0.1.32

### cd_icc_set_filename ()

    void                cd_icc_set_filename                 (CdIcc *icc,
                                                             const gchar *filename);

Sets the filename, which may be required if the ICC profile has been loaded using `cd_icc_load_fd()` from a disk cache.

`icc` : | a CdIcc instance.
`filename` : | a filename, or `NULL`

Since 1.1.1

### cd_icc_get_version ()

    gdouble             cd_icc_get_version                  (CdIcc *icc);

Gets the ICC profile version, typically 2.1 or 4.2

`icc` : | a CdIcc instance.
Returns : | A floating point version number, or 0.0 for unknown

Since 0.1.32

### cd_icc_set_version ()

    void                cd_icc_set_version                  (CdIcc *icc,
                                                             gdouble version);

Sets the profile version.

`icc` : | a CdIcc instance.
`version` : | the profile version, e.g. 2.1 or 4.0

Since 0.1.32

### cd_icc_get_kind ()

    CdProfileKind       cd_icc_get_kind                     (CdIcc *icc);

Gets the profile kind.

`icc` : | a CdIcc instance.
Returns : | The kind, e.g. `CD_PROFILE_KIND_INPUT`

Since 0.1.32

### cd_icc_set_kind ()

    void                cd_icc_set_kind                     (CdIcc *icc,
                                                             CdProfileKind kind);

Sets the profile kind.

`icc` : | a CdIcc instance.
`kind` : | the profile kind, e.g. `CD_PROFILE_KIND_DISPLAY_DEVICE`

Since 0.1.32

### cd_icc_get_colorspace ()

    CdColorspace        cd_icc_get_colorspace               (CdIcc *icc);

Gets the profile colorspace

`icc` : | a CdIcc instance.
Returns : | The profile colorspace, e.g. `CD_COLORSPACE_RGB`

Since 0.1.32

### cd_icc_set_colorspace ()

    void                cd_icc_set_colorspace               (CdIcc *icc,
                                                             CdColorspace colorspace);

Sets the colorspace kind.

`icc` : | a CdIcc instance.
`colorspace` : | the profile colorspace, e.g. `CD_COLORSPACE_RGB`

Since 0.1.32

### cd_icc_get_metadata ()

    GHashTable *        cd_icc_get_metadata                 (CdIcc *icc);

Gets all the metadata from the ICC profile.

`icc` : | A valid CdIcc
Returns : | The profile metadata. [transfer container]

Since 0.1.32

### cd_icc_get_metadata_item ()

    const gchar *       cd_icc_get_metadata_item            (CdIcc *icc,
                                                             const gchar *key);

Gets an item of data from the ICC metadata store.

`icc` : | A valid CdIcc
`key` : | the dictionary key
Returns : | The dictionary data, or `NULL` if the key does not exist.

Since 0.1.32

### cd_icc_add_metadata ()

    void                cd_icc_add_metadata                 (CdIcc *icc,
                                                             const gchar *key,
                                                             const gchar *value);

Sets an item of data to the profile metadata, overwriting it if it already exists.

`icc` : | A valid CdIcc
`key` : | the metadata key
`value` : | the metadata value

Since 0.1.32

### cd_icc_remove_metadata ()

    void                cd_icc_remove_metadata              (CdIcc *icc,
                                                             const gchar *key);

Removes an item of metadata.

`icc` : | A valid CdIcc
`key` : | the metadata key

Since 0.1.32

### cd_icc_get_named_colors ()

    GPtrArray *         cd_icc_get_named_colors             (CdIcc *icc);

Gets any named colors in the profile. This function will only return results if the profile was loaded with the `CD_ICC_LOAD_FLAGS_NAMED_COLORS` flag.

`icc` : | a CdIcc instance.
Returns : | An array of color swatches. [transfer container][element-type CdColorSwatch]

Since 0.1.32

### cd_icc_get_can_delete ()

    gboolean            cd_icc_get_can_delete               (CdIcc *icc);

Finds out if the profile could be deleted. This is only applicable for profiles loaded with `cd_icc_load_file()` as obviously data and fd's cannot be sanely unlinked.

`icc` : | a CdIcc instance.
Returns : | `TRUE` if `g_file_delete()` would likely work

Since 0.1.32

### cd_icc_get_created ()

    GDateTime *         cd_icc_get_created                  (CdIcc *icc);

Gets the ICC creation date and time.

`icc` : | A valid CdIcc
Returns : | A GDateTime object, or `NULL` for not set

Since 0.1.32

### cd_icc_get_checksum ()

    const gchar *       cd_icc_get_checksum                 (CdIcc *icc);

Gets the profile checksum if one exists. This will either be the embedded profile ID, or the file checksum if the CdIcc object was loaded using `cd_icc_load_data()` or `cd_icc_load_file()` and the `CD_ICC_LOAD_FLAGS_FALLBACK_MD5` flag is used.

`icc` : | A valid CdIcc
Returns : | An embedded MD5 checksum, or `NULL` for not set

Since 0.1.32

### cd_icc_get_description ()

    const gchar *       cd_icc_get_description              (CdIcc *icc,
                                                             const gchar *locale,
                                                             GError **error);

Gets the profile description. If the translated text is not available in the selected locale then the default untranslated (en_US) text is returned.

`icc` : | A valid CdIcc
`locale` : | A locale, e.g. "en_GB.UTF-8" or `NULL` for the profile default
`error` : | A GError or `NULL`
Returns : | The text as a UTF-8 string, or `NULL` of the locale is invalid or the tag does not exist.

Since 0.1.32

### cd_icc_get_copyright ()

    const gchar *       cd_icc_get_copyright                (CdIcc *icc,
                                                             const gchar *locale,
                                                             GError **error);

Gets the profile copyright. If the translated text is not available in the selected locale then the default untranslated (en_US) text is returned.

`icc` : | A valid CdIcc
`locale` : | A locale, e.g. "en_GB.UTF-8" or `NULL` for the profile default
`error` : | A GError or `NULL`
Returns : | The text as a UTF-8 string, or `NULL` of the locale is invalid or the tag does not exist.

Since 0.1.32

### cd_icc_get_manufacturer ()

    const gchar *       cd_icc_get_manufacturer             (CdIcc *icc,
                                                             const gchar *locale,
                                                             GError **error);

Gets the profile manufacturer. If the translated text is not available in the selected locale then the default untranslated (en_US) text is returned.

`icc` : | A valid CdIcc
`locale` : | A locale, e.g. "en_GB.UTF-8" or `NULL` for the profile default
`error` : | A GError or `NULL`
Returns : | The text as a UTF-8 string, or `NULL` of the locale is invalid or the tag does not exist.

Since 0.1.32

### cd_icc_get_model ()

    const gchar *       cd_icc_get_model                    (CdIcc *icc,
                                                             const gchar *locale,
                                                             GError **error);

Gets the profile model. If the translated text is not available in the selected locale then the default untranslated (en_US) text is returned.

`icc` : | A valid CdIcc
`locale` : | A locale, e.g. "en_GB.UTF-8" or `NULL` for the profile default
`error` : | A GError or `NULL`
Returns : | The text as a UTF-8 string, or `NULL` of the locale is invalid or the tag does not exist.

Since 0.1.32

### cd_icc_set_description ()

    void                cd_icc_set_description              (CdIcc *icc,
                                                             const gchar *locale,
                                                             const gchar *value);

Sets the profile description for a specific locale.

`icc` : | A valid CdIcc
`locale` : | A locale, e.g. "en_GB.UTF-8" or `NULL` for the profile default
`value` : | New string value

Since 0.1.32

### cd_icc_set_description_items ()

    void                cd_icc_set_description_items        (CdIcc *icc,
                                                             GHashTable *values);

Sets the profile descriptions for specific locales.

`icc` : | A valid CdIcc
`values` : | New translated values, with the key being the locale.

Since 0.1.32

### cd_icc_set_copyright ()

    void                cd_icc_set_copyright                (CdIcc *icc,
                                                             const gchar *locale,
                                                             const gchar *value);

Sets the profile _copyright for a specific locale.

`icc` : | A valid CdIcc
`locale` : | A locale, e.g. "en_GB.UTF-8" or `NULL` for the profile default
`value` : | New string value

Since 0.1.32

### cd_icc_set_copyright_items ()

    void                cd_icc_set_copyright_items          (CdIcc *icc,
                                                             GHashTable *values);

Sets the profile copyrights for specific locales.

`icc` : | A valid CdIcc
`values` : | New translated values, with the key being the locale.

Since 0.1.32

### cd_icc_set_manufacturer ()

    void                cd_icc_set_manufacturer             (CdIcc *icc,
                                                             const gchar *locale,
                                                             const gchar *value);

Sets the profile manufacturer for a specific locale.

`icc` : | A valid CdIcc
`locale` : | A locale, e.g. "en_GB.UTF-8" or `NULL` for the profile default
`value` : | New string value

Since 0.1.32

### cd_icc_set_manufacturer_items ()

    void                cd_icc_set_manufacturer_items       (CdIcc *icc,
                                                             GHashTable *values);

Sets the profile manufacturers for specific locales.

`icc` : | A valid CdIcc
`values` : | New translated values, with the key being the locale.

Since 0.1.32

### cd_icc_set_model ()

    void                cd_icc_set_model                    (CdIcc *icc,
                                                             const gchar *locale,
                                                             const gchar *value);

Sets the profile model for a specific locale.

`icc` : | A valid CdIcc
`locale` : | A locale, e.g. "en_GB.UTF-8" or `NULL` for the profile default
`value` : | New string value

Since 0.1.32

### cd_icc_set_model_items ()

    void                cd_icc_set_model_items              (CdIcc *icc,
                                                             GHashTable *values);

Sets the profile models for specific locales.

`icc` : | A valid CdIcc
`values` : | New translated values, with the key being the locale.

Since 0.1.32

### cd_icc_get_red ()

    const CdColorXYZ *  cd_icc_get_red                      (CdIcc *icc);

Gets the profile red chromaticity value. This function will only return results if the profile was loaded with the `CD_ICC_LOAD_FLAGS_PRIMARIES` flag.

`icc` : | a valid CdIcc instance
Returns : | the CdColorXYZ value

Since 0.1.32

### cd_icc_get_green ()

    const CdColorXYZ *  cd_icc_get_green                    (CdIcc *icc);

Gets the profile green chromaticity value. This function will only return results if the profile was loaded with the `CD_ICC_LOAD_FLAGS_PRIMARIES` flag.

`icc` : | a valid CdIcc instance
Returns : | the CdColorXYZ value

Since 0.1.32

### cd_icc_get_blue ()

    const CdColorXYZ *  cd_icc_get_blue                     (CdIcc *icc);

Gets the profile red chromaticity value. This function will only return results if the profile was loaded with the `CD_ICC_LOAD_FLAGS_PRIMARIES` flag.

`icc` : | a valid CdIcc instance
Returns : | the CdColorXYZ value

Since 0.1.32

### cd_icc_get_white ()

    const CdColorXYZ *  cd_icc_get_white                    (CdIcc *icc);

Gets the profile white point. This function will only return results if the profile was loaded with the `CD_ICC_LOAD_FLAGS_PRIMARIES` flag.

`icc` : | a valid CdIcc instance
Returns : | the CdColorXYZ value

Since 0.1.32

### cd_icc_get_temperature ()

    guint               cd_icc_get_temperature              (CdIcc *icc);

Gets the ICC color temperature, rounded to the nearest 100K. This function will only return results if the profile was loaded with the `CD_ICC_LOAD_FLAGS_PRIMARIES` flag.

`icc` : | A valid CdIcc
Returns : | The color temperature in Kelvin, or 0 for error.

Since 0.1.32

### cd_icc_get_warnings ()

    GArray *            cd_icc_get_warnings                 (CdIcc *icc);

Returns any warnings with profiles

`icc` : | a CdIcc instance.
Returns : | An array of warning values. [transfer container][element-type CdProfileWarning]

Since 0.1.34

### cd_icc_create_from_edid ()

    gboolean            cd_icc_create_from_edid             (CdIcc *icc,
                                                             gdouble gamma_value,
                                                             const CdColorYxy *red,
                                                             const CdColorYxy *green,
                                                             const CdColorYxy *blue,
                                                             const CdColorYxy *white,
                                                             GError **error);

Creates an ICC profile from EDID data.

`icc` : | A valid CdIcc
`gamma_value` : | approximate device gamma
`red` : | primary color value
`green` : | primary color value
`blue` : | primary color value
`white` : | whitepoint value
`error` : | A GError, or `NULL`
Returns : | `TRUE` for success

Since 0.1.32

### cd_icc_get_vcgt ()

    GPtrArray *         cd_icc_get_vcgt                     (CdIcc *icc,
                                                             guint size,
                                                             GError **error);

Gets the video card calibration data from the profile.

`icc` : | A valid CdIcc
`size` : | the desired size of the table data
`error` : | A GError or `NULL`
Returns : | VCGT data, or `NULL` for error. [transfer container][element-type CdColorRGB]

Since 0.1.34

### cd_icc_set_vcgt ()

    gboolean            cd_icc_set_vcgt                     (CdIcc *icc,
                                                             GPtrArray *vcgt,
                                                             GError **error);

Sets the Video Card Gamma Table from the profile.

Return vale: `TRUE` for success.

`icc` : | A valid CdIcc
`vcgt` : | video card calibration data. [element-type CdColorRGB]
`error` : | A GError or `NULL`

Since 0.1.34

### cd_icc_get_response ()

    GPtrArray *         cd_icc_get_response                 (CdIcc *icc,
                                                             guint size,
                                                             GError **error);

Generates a response curve of a specified size.

`icc` : | A valid CdIcc
`size` : | the size of the curve to generate
`error` : | a valid GError, or `NULL`
Returns : | response data, or `NULL` for error. [transfer container][element-type CdColorRGB]

Since 0.1.34