gboolean gimp_image_validate_icc_parasite (GimpImage *image, const GimpParasite *icc_parasite, gboolean *is_builtin, GError **error) { g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE); g_return_val_if_fail (icc_parasite != NULL, FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); if (strcmp (gimp_parasite_name (icc_parasite), GIMP_ICC_PROFILE_PARASITE_NAME) != 0) { g_set_error_literal (error, GIMP_ERROR, GIMP_FAILED, _("ICC profile validation failed: " "Parasite's name is not 'icc-profile'")); return FALSE; } if (gimp_parasite_flags (icc_parasite) != (GIMP_PARASITE_PERSISTENT | GIMP_PARASITE_UNDOABLE)) { g_set_error_literal (error, GIMP_ERROR, GIMP_FAILED, _("ICC profile validation failed: " "Parasite's flags are not (PERSISTENT | UNDOABLE)")); return FALSE; } return gimp_image_validate_icc_profile (image, gimp_parasite_data (icc_parasite), gimp_parasite_data_size (icc_parasite), is_builtin, error); }
void gimp_image_set_icc_profile (GimpImage *image, const GimpParasite *icc_profile) { g_return_if_fail (GIMP_IS_IMAGE (image)); if (icc_profile) { g_return_if_fail (gimp_image_validate_icc_profile (image, icc_profile, NULL) == TRUE); gimp_image_parasite_attach (image, icc_profile); } else { gimp_image_parasite_detach (image, GIMP_ICC_PROFILE_PARASITE_NAME); } }