## GimpColorProfile

GimpColorProfile — Definitions and Functions relating to LCMS.

## Functions

GimpColorProfile * | gimp_color_profile_new_rgb_srgb ()
GimpColorProfile * | gimp_color_profile_new_rgb_srgb_linear ()
GimpColorProfile * | gimp_color_profile_new_rgb_adobe ()
GimpColorProfile * | gimp_color_profile_new_d65_gray_srgb_trc ()
GimpColorProfile * | gimp_color_profile_new_d65_gray_linear ()
GimpColorProfile * | gimp_color_profile_new_d50_gray_lab_trc ()
GimpColorProfile * | gimp_color_profile_new_srgb_trc_from_color_profile ()
GimpColorProfile * | gimp_color_profile_new_linear_from_color_profile ()
GimpColorProfile * | gimp_color_profile_new_from_file ()
GimpColorProfile * | gimp_color_profile_new_from_icc_profile ()
GimpColorProfile * | gimp_color_profile_new_from_lcms_profile ()
gboolean | gimp_color_profile_save_to_file ()
const guint8 * | gimp_color_profile_get_icc_profile ()
gpointer | gimp_color_profile_get_lcms_profile ()
const gchar * | gimp_color_profile_get_description ()
const gchar * | gimp_color_profile_get_manufacturer ()
const gchar * | gimp_color_profile_get_model ()
const gchar * | gimp_color_profile_get_copyright ()
const gchar * | gimp_color_profile_get_label ()
const gchar * | gimp_color_profile_get_summary ()
gboolean | gimp_color_profile_is_equal ()
gboolean | gimp_color_profile_is_rgb ()
gboolean | gimp_color_profile_is_gray ()
gboolean | gimp_color_profile_is_cmyk ()
gboolean | gimp_color_profile_is_linear ()
const Babl * | gimp_color_profile_get_lcms_format ()

## Description

Definitions and Functions relating to LCMS.

## Functions

### gimp_color_profile_new_rgb_srgb ()

    GimpColorProfile *
    gimp_color_profile_new_rgb_srgb (void);

This function is a replacement for `cmsCreate_sRGBProfile()` and returns an sRGB profile that is functionally the same as the ArgyllCMS sRGB.icm profile. "Functionally the same" means it has the same red, green, and blue colorants and the V4 "chad" equivalent of the ArgyllCMS V2 white point. The profile TRC is also functionally equivalent to the ArgyllCMS sRGB.icm TRC and is the same as the LCMS sRGB built-in profile TRC.

The actual primaries in the sRGB specification are red xy: {0.6400, 0.3300, 1.0} green xy: {0.3000, 0.6000, 1.0} blue xy: {0.1500, 0.0600, 1.0}

The sRGB primaries given below are "pre-quantized" to compensate for hexadecimal quantization during the profile-making process. Unless the profile-making code compensates for this quantization, the resulting profile's red, green, and blue colorants will deviate slightly from the correct XYZ values.

LCMS2 doesn't compensate for hexadecimal quantization. The "pre-quantized" primaries below were back-calculated from the ArgyllCMS sRGB.icm profile. The resulting sRGB profile's colorants exactly matches the ArgyllCMS sRGB.icm profile colorants.

#### Returns

the sRGB GimpColorProfile.

Since: 2.10

### gimp_color_profile_new_rgb_srgb_linear ()

    GimpColorProfile *
    gimp_color_profile_new_rgb_srgb_linear
                                   (void);

This function creates a profile for babl_model("RGB"). Please somebody write something smarter here.

#### Returns

the linear RGB GimpColorProfile.

Since: 2.10

### gimp_color_profile_new_rgb_adobe ()

    GimpColorProfile *
    gimp_color_profile_new_rgb_adobe (void);

This function creates a profile compatible with AbobeRGB (1998).

#### Returns

the AdobeRGB-compatible GimpColorProfile.

Since: 2.10

### gimp_color_profile_new_d65_gray_srgb_trc ()

    GimpColorProfile *
    gimp_color_profile_new_d65_gray_srgb_trc
                                   (void);

This function creates a grayscale GimpColorProfile with an sRGB TRC. See `gimp_color_profile_new_rgb_srgb()`.

#### Returns

the sRGB-gamma grayscale GimpColorProfile.

Since: 2.10

### gimp_color_profile_new_d65_gray_linear ()

    GimpColorProfile *
    gimp_color_profile_new_d65_gray_linear
                                   (void);

### gimp_color_profile_new_d50_gray_lab_trc ()

    GimpColorProfile *
    gimp_color_profile_new_d50_gray_lab_trc
                                   (void);

This function creates a grayscale GimpColorProfile with the D50 ICC profile illuminant as the profile white point and the LAB companding curve as the TRC.

#### Returns

a gray profile with the D50 ICC profile illuminant as the profile white point and the LAB companding curve as the TRC. as the TRC.

Since: 2.10

### gimp_color_profile_new_srgb_trc_from_color_profile ()

    GimpColorProfile *
    gimp_color_profile_new_srgb_trc_from_color_profile
                                   (GimpColorProfile *profile);

This function creates a new RGB GimpColorProfile with a sRGB gamma TRC and `profile` 's RGB chromacities and whitepoint.

#### Parameters

profile | a GimpColorProfile |

#### Returns

the new GimpColorProfile, or `NULL` if `profile` is not an RGB profile or not matrix-based.

Since: 2.10

### gimp_color_profile_new_linear_from_color_profile ()

    GimpColorProfile *
    gimp_color_profile_new_linear_from_color_profile
                                   (GimpColorProfile *profile);

This function creates a new RGB GimpColorProfile with a linear TRC and `profile` 's RGB chromacities and whitepoint.

#### Parameters

profile | a GimpColorProfile |

#### Returns

the new GimpColorProfile, or `NULL` if `profile` is not an RGB profile or not matrix-based.

Since: 2.10

### gimp_color_profile_new_from_file ()

    GimpColorProfile *
    gimp_color_profile_new_from_file (GFile *file,
                                      GError **error);

This function opens an ICC color profile from `file` .

#### Parameters

file | a GFile |
error | return location for GError |

#### Returns

the GimpColorProfile, or `NULL`. On error, `NULL` is returned and `error` is set.

Since: 2.10

### gimp_color_profile_new_from_icc_profile ()

    GimpColorProfile *
    gimp_color_profile_new_from_icc_profile
                                   (const guint8 *data,
                                    gsize length,
                                    GError **error);

This function opens an ICC color profile from memory. On error, `NULL` is returned and `error` is set.

#### Parameters

data | pointer to memory containing an ICC profile |
length | length of the profile in memory, in bytes |
error | return location for GError |

#### Returns

the GimpColorProfile, or `NULL`.

Since: 2.10

### gimp_color_profile_new_from_lcms_profile ()

    GimpColorProfile *
    gimp_color_profile_new_from_lcms_profile
                                   (gpointer lcms_profile,
                                    GError **error);

This function creates a GimpColorProfile from a cmsHPROFILE. On error, `NULL` is returned and `error` is set. The passed `lcms_profile` pointer is not retained by the created GimpColorProfile.

#### Parameters

lcms_profile | an LCMS cmsHPROFILE pointer |
error | return location for GError |

#### Returns

the GimpColorProfile, or `NULL`.

Since: 2.10

### gimp_color_profile_save_to_file ()

    gboolean
    gimp_color_profile_save_to_file (GimpColorProfile *profile,
                                     GFile *file,
                                     GError **error);

This function saves `profile` to `file` as ICC profile.

#### Parameters

profile | a GimpColorProfile |
file | a GFile |
error | return location for GError |

#### Returns

`TRUE` on success, `FALSE` if an error occurred.

Since: 2.10

### gimp_color_profile_get_icc_profile ()

    const guint8 *
    gimp_color_profile_get_icc_profile (GimpColorProfile *profile,
                                        gsize *length);

This function returns `profile` as ICC profile data. The returned memory belongs to `profile` and must not be modified or freed.

#### Parameters

profile | a GimpColorProfile |
length | return location for the number of bytes |

#### Returns

a pointer to the IIC profile data.

Since: 2.10

### gimp_color_profile_get_lcms_profile ()

    gpointer
    gimp_color_profile_get_lcms_profile (GimpColorProfile *profile);

This function returns `profile` 's cmsHPROFILE. The returned value belongs to `profile` and must not be modified or freed.

#### Parameters

profile | a GimpColorProfile |

#### Returns

a pointer to the cmsHPROFILE.

Since: 2.10

### gimp_color_profile_get_description ()

    const gchar *
    gimp_color_profile_get_description (GimpColorProfile *profile);

#### Parameters

profile | a GimpColorProfile |

#### Returns

a string containing `profile` 's description. The returned value belongs to `profile` and must not be modified or freed.

Since: 2.10

### gimp_color_profile_get_manufacturer ()

    const gchar *
    gimp_color_profile_get_manufacturer (GimpColorProfile *profile);

#### Parameters

profile | a GimpColorProfile |

#### Returns

a string containing `profile` 's manufacturer. The returned value belongs to `profile` and must not be modified or freed.

Since: 2.10

### gimp_color_profile_get_model ()

    const gchar *
    gimp_color_profile_get_model (GimpColorProfile *profile);

#### Parameters

profile | a GimpColorProfile |

#### Returns

a string containing `profile` 's model. The returned value belongs to `profile` and must not be modified or freed.

Since: 2.10

### gimp_color_profile_get_copyright ()

    const gchar *
    gimp_color_profile_get_copyright (GimpColorProfile *profile);

#### Parameters

profile | a GimpColorProfile |

#### Returns

a string containing `profile` 's copyright. The returned value belongs to `profile` and must not be modified or freed.

Since: 2.10

### gimp_color_profile_get_label ()

    const gchar *
    gimp_color_profile_get_label (GimpColorProfile *profile);

This function returns a string containing `profile` 's "title", a string that can be used to label the profile in a user interface.

Unlike `gimp_color_profile_get_description()`, this function always returns a string (as a fallback, it returns "(unnamed profile)").

#### Parameters

profile | a GimpColorProfile |

#### Returns

the `profile` 's label. The returned value belongs to `profile` and must not be modified or freed.

Since: 2.10

### gimp_color_profile_get_summary ()

    const gchar *
    gimp_color_profile_get_summary (GimpColorProfile *profile);

This function return a string containing a multi-line summary of `profile` 's description, model, manufacturer and copyright, to be used as detailed information about the profile in a user interface.

#### Parameters

profile | a GimpColorProfile |

#### Returns

the `profile` 's summary. The returned value belongs to `profile` and must not be modified or freed.

Since: 2.10

### gimp_color_profile_is_equal ()

    gboolean
    gimp_color_profile_is_equal (GimpColorProfile *profile1,
                                 GimpColorProfile *profile2);

Compares two profiles.

#### Parameters

profile1 | a GimpColorProfile |
profile2 | a GimpColorProfile |

#### Returns

`TRUE` if the profiles are equal, `FALSE` otherwise.

Since: 2.10

### gimp_color_profile_is_rgb ()

    gboolean
    gimp_color_profile_is_rgb (GimpColorProfile *profile);

#### Parameters

profile | a GimpColorProfile |

#### Returns

`TRUE` if the profile's color space is RGB, `FALSE` otherwise.

Since: 2.10

### gimp_color_profile_is_gray ()

    gboolean
    gimp_color_profile_is_gray (GimpColorProfile *profile);

#### Parameters

profile | a GimpColorProfile |

#### Returns

`TRUE` if the profile's color space is grayscale, `FALSE` otherwise.

Since: 2.10

### gimp_color_profile_is_cmyk ()

    gboolean
    gimp_color_profile_is_cmyk (GimpColorProfile *profile);

#### Parameters

profile | a GimpColorProfile |

#### Returns

`TRUE` if the profile's color space is CMYK, `FALSE` otherwise.

Since: 2.10

### gimp_color_profile_is_linear ()

    gboolean
    gimp_color_profile_is_linear (GimpColorProfile *profile);

This function determines is the ICC profile represented by a GimpColorProfile is a linear RGB profile or not, some profiles that are LUTs though linear will also return FALSE;

#### Parameters

profile | a GimpColorProfile |

#### Returns

`TRUE` if the profile is a matrix shaping profile with linear TRCs, `FALSE` otherwise.

Since: 2.10

### gimp_color_profile_get_lcms_format ()

    const Babl *
    gimp_color_profile_get_lcms_format (const Babl *format,
                                        guint32 *lcms_format);

This function takes a Babl format and returns the lcms format to be used with that `format` . It also returns a Babl format to be used instead of the passed `format` , which usually is the same as `format` , unless lcms doesn't support `format` .

Note that this function currently only supports RGB, RGBA, R'G'B', R'G'B'A, Y, YA, Y', Y'A and the cairo-RGB24 and cairo-ARGB32 formats.

#### Parameters

format | a Babl format |
lcms_format | return location for an lcms format |

#### Returns

the Babl format to be used instead of `format` , or `NULL` if the passed `format` is not supported at all.

Since: 2.10

## Types and Values