## CdIcc

CdIcc — An object to read and write a binary ICC profile

## Functions

GQuark | cd_icc_error_quark ()
CdIcc * | cd_icc_new ()
gboolean | cd_icc_load_data ()
gboolean | cd_icc_load_file ()
gboolean | cd_icc_load_fd ()
gboolean | cd_icc_load_handle ()
GBytes * | cd_icc_save_data ()
gboolean | cd_icc_save_file ()
gboolean | cd_icc_save_default ()
gchar * | cd_icc_to_string ()
gpointer | cd_icc_get_handle ()
gpointer | cd_icc_get_context ()
guint32 | cd_icc_get_size ()
const gchar * | cd_icc_get_filename ()
void | cd_icc_set_filename ()
gdouble | cd_icc_get_version ()
void | cd_icc_set_version ()
CdProfileKind | cd_icc_get_kind ()
void | cd_icc_set_kind ()
CdColorspace | cd_icc_get_colorspace ()
void | cd_icc_set_colorspace ()
GHashTable * | cd_icc_get_metadata ()
const gchar * | cd_icc_get_metadata_item ()
void | cd_icc_add_metadata ()
void | cd_icc_remove_metadata ()
GPtrArray * | cd_icc_get_named_colors ()
gboolean | cd_icc_get_can_delete ()
GDateTime * | cd_icc_get_created ()
void | cd_icc_set_created ()
const gchar * | cd_icc_get_checksum ()
const gchar * | cd_icc_get_description ()
const gchar * | cd_icc_get_characterization_data ()
void | cd_icc_set_characterization_data ()
const gchar * | cd_icc_get_copyright ()
const gchar * | cd_icc_get_manufacturer ()
const gchar * | cd_icc_get_model ()
void | cd_icc_set_description ()
void | cd_icc_set_description_items ()
void | cd_icc_set_copyright ()
void | cd_icc_set_copyright_items ()
void | cd_icc_set_manufacturer ()
void | cd_icc_set_manufacturer_items ()
void | cd_icc_set_model ()
void | cd_icc_set_model_items ()
const CdColorXYZ * | cd_icc_get_red ()
const CdColorXYZ * | cd_icc_get_green ()
const CdColorXYZ * | cd_icc_get_blue ()
const CdColorXYZ * | cd_icc_get_white ()
guint | cd_icc_get_temperature ()
GArray * | cd_icc_get_warnings ()
gboolean | cd_icc_create_from_edid ()
gboolean | cd_icc_create_from_edid_data ()
gboolean | cd_icc_create_default ()
gboolean | cd_icc_create_default_full ()
GPtrArray * | cd_icc_get_vcgt ()
gboolean | cd_icc_set_vcgt ()
GPtrArray * | cd_icc_get_response ()
gchar ** | cd_icc_get_tags ()
GBytes * | cd_icc_get_tag_data ()
gboolean | cd_icc_set_tag_data ()

## Types and Values

#define | CD_ICC_ERROR
#define | CD_ICC_TYPE_ERROR
#define | CD_TYPE_ICC
enum | CdIccError
struct | CdIccClass
enum | CdIccLoadFlags
enum | CdIccSaveFlags
| CdIcc

## Description

## Functions

### 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.

#### Parameters

icc | a CdIcc instance. |
data | binary data. | [array length=data_len]
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.

#### Parameters

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.

#### Parameters

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 `cmsCreateRGBProfileTHR()` 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.

To handle the internal error callback, you should use the thread-safe creation function, e.g. `cmsCreateNULLProfileTHR()`. The `context_id` should be set as the value of `cd_icc_get_context()` for this object.

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.

#### Parameters

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

#### Parameters

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.

#### Parameters

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_save_default ()

    gboolean
    cd_icc_save_default (CdIcc *icc,
                         CdIccSaveFlags flags,
                         GCancellable *cancellable,
                         GError **error);

Saves an ICC profile to the default per-user location.

Return vale: `TRUE` for success.

#### Parameters

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

Since: 1.1.1

### cd_icc_to_string ()

    gchar *
    cd_icc_to_string (CdIcc *icc);

Returns a string representation of the ICC profile.

#### Parameters

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.

#### Parameters

icc | a CdIcc instance. |

#### Returns

Do not call `cmsCloseProfile()` on this value!.

[transfer none]

### cd_icc_get_context ()

    gpointer
    cd_icc_get_context (CdIcc *icc);

Return the cmsContext instance used locally. This may be required if you are using native LCMS calls and then `cd_icc_load_handle()`.

#### Parameters

icc | a CdIcc instance. |

#### Returns

Do not call `cmsDeleteContext()` on this value!.

[transfer none]

Since: 1.1.7

### 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.

#### Parameters

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.

#### Parameters

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

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

icc | A valid CdIcc |
key | the metadata key |
value | the UTF-8 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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

icc | A valid CdIcc |

#### Returns

A GDateTime object, or `NULL` for not set

Since: 0.1.32

### cd_icc_set_created ()

    void
    cd_icc_set_created (CdIcc *icc,
                        GDateTime *creation_time);

Sets the ICC creation date and time.

#### Parameters

icc | A valid CdIcc |

Since: 1.4.2

### 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.

#### Parameters

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.

#### Parameters

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_characterization_data ()

    const gchar *
    cd_icc_get_characterization_data (CdIcc *icc);

Gets any characterization data used to build the profile. This function will only return results if the profile was loaded with the `CD_ICC_LOAD_FLAGS_CHARACTERIZATION` flag.

#### Parameters

icc | a CdIcc instance. |

#### Returns

TI3 string data

Since: 1.1.1

### cd_icc_set_characterization_data ()

    void
    cd_icc_set_characterization_data (CdIcc *icc,
                                      const gchar *data);

Sets the characterization data used to build the profile.

#### Parameters

icc | a CdIcc instance. |
data | TI3 string data, or `NULL` |

Since: 1.1.1

### 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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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

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.

#### Parameters

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.

#### Parameters

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

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.

#### Parameters

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.

#### Parameters

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

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.

#### Parameters

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.

#### Parameters

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

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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

#### Parameters

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.

#### Parameters

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_create_from_edid_data ()

    gboolean
    cd_icc_create_from_edid_data (CdIcc *icc,
                                  CdEdid *edid,
                                  GError **error);

Creates an ICC profile from EDID data.

#### Parameters

icc | A valid CdIcc |
edid | EDID data |
error | A GError, or `NULL` |

#### Returns

`TRUE` for success

Since: 1.1.2

### cd_icc_create_default ()

    gboolean
    cd_icc_create_default (CdIcc *icc,
                           GError **error);

Creates a default sRGB ICC profile.

#### Parameters

icc | A valid CdIcc |
error | A GError, or `NULL`. | [out]

#### Returns

`TRUE` for success

Since: 1.1.2

### cd_icc_create_default_full ()

    gboolean
    cd_icc_create_default_full (CdIcc *icc,
                                CdIccLoadFlags flags,
                                GError **error);

Creates a default sRGB ICC profile.

#### Parameters

icc | A valid CdIcc |
flags | a set of CdIccLoadFlags |
error | A GError, or `NULL`. | [out]

#### Returns

`TRUE` for success

Since: 1.4.5

### cd_icc_get_vcgt ()

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

Gets the video card calibration data from the profile.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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

### cd_icc_get_tags ()

    gchar **
    cd_icc_get_tags (CdIcc *icc,
                     GError **error);

Returns the internal tag table. Most users do not need to do this.

#### Parameters

icc | a CdIcc instance. |
error | A GError or `NULL` |

#### Returns

the tag tables as an array of strings.

[transfer full]

Since: 1.1.6

### cd_icc_get_tag_data ()

    GBytes *
    cd_icc_get_tag_data (CdIcc *icc,
                         const gchar *tag,
                         GError **error);

Returns the raw data for the specific tag. Most users do not need to do this.

#### Parameters

icc | a CdIcc instance. |
tag | a 4 bytes tag description, e.g. "cprt" or "vcgt" |
error | A GError or `NULL` |

#### Returns

the data for the tag.

[transfer full]

Since: 1.1.6

### cd_icc_set_tag_data ()

    gboolean
    cd_icc_set_tag_data (CdIcc *icc,
                         const gchar *tag,
                         GBytes *data,
                         GError **error);

Sets the raw data for the specific tag. Most users do not need to do this.

#### Parameters

icc | a CdIcc instance. |
tag | a 4 bytes tag description, e.g. "cprt" or "vcgt" |
data | a variable sized data entry |
error | A GError or `NULL` |

Since: 1.1.6

## Types and Values

### 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 ())

### CD_TYPE_ICC

    #define CD_TYPE_ICC (cd_icc_get_type ())

### enum CdIccError

The ICC error code.

#### Members

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_CORRUPTION_DETECTED | Corruption has been detected |
CD_ICC_ERROR_INTERNAL | Something inside LCMS broke |

### struct CdIccClass

    struct CdIccClass {
    	GObjectClass		 parent_class;
    };

### enum CdIccLoadFlags

Flags used when loading an ICC profile.

#### Members

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_CHARACTERIZATION | Load the characterization data from the profile |
CD_ICC_LOAD_FLAGS_ALL |  |

Since: 0.1.32

### enum CdIccSaveFlags

Flags used when saving an ICC profile.

#### Members

CD_ICC_SAVE_FLAGS_NONE | No flags set. |

Since: 0.1.32

### CdIcc

    typedef struct _CdIcc CdIcc;