From ebc53672cb8f26442b37273333b8d97a56ccc691 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Sat, 15 Mar 2014 21:46:02 +0100 Subject: [PATCH] libgimpcolor: add gimp_lcms_profile_is_rgb() and _is_cmyk() And change all lcms code to use it. --- libgimpcolor/gimpcolor.def | 2 ++ libgimpcolor/gimplcms.c | 16 ++++++++++++++++ libgimpcolor/gimplcms.h | 3 +++ modules/display-filter-lcms.c | 9 +-------- plug-ins/common/lcms.c | 16 +++++----------- plug-ins/file-jpeg/jpeg-load.c | 6 +++--- 6 files changed, 30 insertions(+), 22 deletions(-) diff --git a/libgimpcolor/gimpcolor.def b/libgimpcolor/gimpcolor.def index c40f29dc3f..4e8ded4384 100644 --- a/libgimpcolor/gimpcolor.def +++ b/libgimpcolor/gimpcolor.def @@ -43,6 +43,8 @@ EXPORTS gimp_lcms_profile_get_manufacturer gimp_lcms_profile_get_model gimp_lcms_profile_get_summary + gimp_lcms_profile_is_cmyk + gimp_lcms_profile_is_rgb gimp_param_rgb_get_type gimp_param_spec_rgb gimp_param_spec_rgb_has_alpha diff --git a/libgimpcolor/gimplcms.c b/libgimpcolor/gimplcms.c index 4e3a708e82..2094925724 100644 --- a/libgimpcolor/gimplcms.c +++ b/libgimpcolor/gimplcms.c @@ -142,6 +142,22 @@ gimp_lcms_profile_get_summary (GimpColorProfile profile) return g_string_free (string, FALSE); } +gboolean +gimp_lcms_profile_is_rgb (GimpColorProfile profile) +{ + g_return_val_if_fail (profile != NULL, FALSE); + + return (cmsGetColorSpace (profile) == cmsSigRgbData); +} + +gboolean +gimp_lcms_profile_is_cmyk (GimpColorProfile profile) +{ + g_return_val_if_fail (profile != NULL, FALSE); + + return (cmsGetColorSpace (profile) == cmsSigCmykData); +} + static void gimp_lcms_profile_set_tag (cmsHPROFILE profile, cmsTagSignature sig, diff --git a/libgimpcolor/gimplcms.h b/libgimpcolor/gimplcms.h index 94b70f3dfc..60c7a97f98 100644 --- a/libgimpcolor/gimplcms.h +++ b/libgimpcolor/gimplcms.h @@ -42,6 +42,9 @@ gchar * gimp_lcms_profile_get_copyright (GimpColorProfile profile) gchar * gimp_lcms_profile_get_summary (GimpColorProfile profile); +gboolean gimp_lcms_profile_is_rgb (GimpColorProfile profile); +gboolean gimp_lcms_profile_is_cmyk (GimpColorProfile profile); + GimpColorProfile gimp_lcms_create_srgb_profile (void); diff --git a/modules/display-filter-lcms.c b/modules/display-filter-lcms.c index 291bf8721a..e65d672567 100644 --- a/modules/display-filter-lcms.c +++ b/modules/display-filter-lcms.c @@ -381,12 +381,6 @@ cdisplay_lcms_changed (GimpColorDisplay *display) cmsCloseProfile (src_profile); } -static gboolean -cdisplay_lcms_profile_is_rgb (cmsHPROFILE profile) -{ - return (cmsGetColorSpace (profile) == cmsSigRgbData); -} - static cmsHPROFILE cdisplay_lcms_get_rgb_profile (CdisplayLcms *lcms) { @@ -404,8 +398,7 @@ cdisplay_lcms_get_rgb_profile (CdisplayLcms *lcms) if (data) profile = cmsOpenProfileFromMem ((gpointer) data, len); - if (profile && - ! cdisplay_lcms_profile_is_rgb (profile)) + if (profile && ! gimp_lcms_profile_is_rgb (profile)) { cmsCloseProfile (profile); profile = NULL; diff --git a/plug-ins/common/lcms.c b/plug-ins/common/lcms.c index 0dc0920767..c39e0fc687 100644 --- a/plug-ins/common/lcms.c +++ b/plug-ins/common/lcms.c @@ -493,12 +493,6 @@ run (const gchar *name, values[0].data.d_status = status; } -static gboolean -lcms_icc_profile_is_rgb (cmsHPROFILE profile) -{ - return (cmsGetColorSpace (profile) == cmsSigRgbData); -} - static GimpPDBStatusType lcms_icc_set (GimpColorConfig *config, gint32 image, @@ -545,7 +539,7 @@ lcms_icc_apply (GimpColorConfig *config, if (! dest_profile) return GIMP_PDB_EXECUTION_ERROR; - if (! lcms_icc_profile_is_rgb (dest_profile)) + if (! gimp_lcms_profile_is_rgb (dest_profile)) { g_message (_("Color profile '%s' is not for RGB color space."), gimp_filename_to_utf8 (filename)); @@ -557,7 +551,7 @@ lcms_icc_apply (GimpColorConfig *config, src_profile = lcms_image_get_profile (config, image, src_md5); - if (src_profile && ! lcms_icc_profile_is_rgb (src_profile)) + if (src_profile && ! gimp_lcms_profile_is_rgb (src_profile)) { g_printerr ("lcms: attached color profile is not for RGB color space " "(skipping)\n"); @@ -633,7 +627,7 @@ lcms_icc_info (GimpColorConfig *config, profile = lcms_image_get_profile (config, image, NULL); - if (profile && ! lcms_icc_profile_is_rgb (profile)) + if (profile && ! gimp_lcms_profile_is_rgb (profile)) { g_printerr ("lcms: attached color profile is not for RGB color space " "(skipping)\n"); @@ -1418,7 +1412,7 @@ lcms_dialog (GimpColorConfig *config, src_profile = lcms_image_get_profile (config, image, NULL); - if (src_profile && ! lcms_icc_profile_is_rgb (src_profile)) + if (src_profile && ! gimp_lcms_profile_is_rgb (src_profile)) { g_printerr ("lcms: attached color profile is not for RGB color space " "(skipping)\n"); @@ -1543,7 +1537,7 @@ lcms_dialog (GimpColorConfig *config, if (dest_profile) { - if (lcms_icc_profile_is_rgb (dest_profile)) + if (gimp_lcms_profile_is_rgb (dest_profile)) { if (apply) success = lcms_image_apply_profile (image, diff --git a/plug-ins/file-jpeg/jpeg-load.c b/plug-ins/file-jpeg/jpeg-load.c index d31aa88605..a264200299 100644 --- a/plug-ins/file-jpeg/jpeg-load.c +++ b/plug-ins/file-jpeg/jpeg-load.c @@ -606,7 +606,7 @@ jpeg_load_cmyk_transform (guint8 *profile_data, if (cmyk_profile) { - if (cmsGetColorSpace (cmyk_profile) != cmsSigCmykData) + if (! gimp_lcms_profile_is_cmyk (cmyk_profile)) { cmsCloseProfile (cmyk_profile); cmyk_profile = NULL; @@ -619,7 +619,7 @@ jpeg_load_cmyk_transform (guint8 *profile_data, { cmyk_profile = cmsOpenProfileFromFile (config->cmyk_profile, "r"); - if (cmyk_profile && cmsGetColorSpace (cmyk_profile) != cmsSigCmykData) + if (cmyk_profile && ! gimp_lcms_profile_is_cmyk (cmyk_profile)) { cmsCloseProfile (cmyk_profile); cmyk_profile = NULL; @@ -638,7 +638,7 @@ jpeg_load_cmyk_transform (guint8 *profile_data, { rgb_profile = cmsOpenProfileFromFile (config->rgb_profile, "r"); - if (rgb_profile && cmsGetColorSpace (rgb_profile) != cmsSigRgbData) + if (rgb_profile && ! gimp_lcms_profile_is_rgb (rgb_profile)) { cmsCloseProfile (rgb_profile); rgb_profile = NULL;