[gimp/gimp-2-8] Backport lcms 2.x support from master, making it optional.
- From: Nils Philippsen <nphilipp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-8] Backport lcms 2.x support from master, making it optional.
- Date: Wed, 18 Sep 2013 14:37:39 +0000 (UTC)
commit b2c6bd76145d3c38a01dbd16a5fe587e2f8efbbd
Author: Nils Philippsen <nils redhat com>
Date: Tue Sep 17 16:43:11 2013 +0200
Backport lcms 2.x support from master, making it optional.
In order to retain support for lcms 1.x, this merges the lcms2-specific
code as a configurable alternative.
The user can specify which version to use by specifying
"--with-lcms=lcms1" or "--with-lcms=lcms2" when running configure. If no
version is specified explicitly, version 1.x will be preferred if both
versions are available. This ensures that GIMP is built with the same
lcms version as an older version, if the same configure switches are
used and the same libraries are available.
This builds on the following commits from the master branch:
commit c59ab4d817730430b4b037de07abd28281f1dcf7
Author: Massimo Valentini <mvalentini src gnome org>
AuthorDate: Tue Sep 4 17:53:06 2012 +0200
lcms: oversight
commit 8bbfc9e5cf4728b9cafc4edf32ab52c32375f9b7
Author: Michael Natterer <mitch gimp org>
AuthorDate: Mon Sep 3 20:03:53 2012 +0200
Bug 675558 - switch from lcms-1 to lcms-2
Applied modified patch from Hartmut Kuhse which ports to lcms-2.
configure.ac | 49 ++++++++++++++---
modules/color-selector-cmyk-lcms.c | 64 +++++++++++++++++++++-
modules/display-filter-lcms.c | 107 +++++++++++++++++++++++++++++++++++-
modules/display-filter-proof.c | 45 +++++++++++++++-
plug-ins/common/lcms.c | 96 ++++++++++++++++++++++++++++++--
plug-ins/file-jpeg/jpeg-load.c | 19 ++++++-
6 files changed, 360 insertions(+), 20 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 15c7cc6..0450d08 100644
--- a/configure.ac
+++ b/configure.ac
@@ -61,7 +61,8 @@ m4_define([libcurl_required_version], [7.15.1])
m4_define([dbus_glib_required_version], [0.70])
m4_define([libgudev_required_version], [167])
m4_define([exif_required_version], [0.6.15])
-m4_define([lcms_required_version], [1.16])
+m4_define([lcms1_required_version], [1.16])
+m4_define([lcms2_required_version], [2.2])
m4_define([libpng_required_version], [1.2.37])
@@ -1539,19 +1540,51 @@ AC_SUBST(JP2_LIBS)
# Check for lcms
################
-AC_ARG_WITH(lcms, [ --without-lcms build without lcms support])
+AC_ARG_WITH(lcms, [ --with-lcms build with lcms support (check, lcms1, lcms2)],
+ [],
+ [with_lcms=check])
have_lcms="no (lcms support disabled)"
if test "x$with_lcms" != xno; then
- have_lcms=yes
- PKG_CHECK_MODULES(LCMS, lcms >= lcms_required_version,
- AC_DEFINE(HAVE_LCMS, 1, [Define to 1 if lcms is available])
- LCMS='lcms$(EXEEXT)',
- have_lcms="no (lcms not found or unusable)")
+ if test "x$with_lcms" == x1 || \
+ test "x$with_lcms" == xlcms1 || \
+ test "x$with_lcms" == xcheck; then
+ PKG_CHECK_MODULES(LCMS1, lcms >= lcms1_required_version,
+ [have_lcms="yes (lcms1)"
+ AC_DEFINE(HAVE_LCMS, 1, [Define to 1 if lcms is available])
+ AC_DEFINE(HAVE_LCMS1, 1, [Define to 1 if lcms1 is available])
+ LCMS_CFLAGS="$LCMS1_CFLAGS"
+ LCMS_LIBS="$LCMS1_LIBS"
+ LCMS='lcms$(EXEEXT)'],
+ [have_lcms="no (lcms1 not found)"])
+ fi
+
+ if test "x$have_lcms" != "xyes (lcms1)"; then
+ if test "x$with_lcms" == x2 || \
+ test "x$with_lcms" == xlcms2 || \
+ test "x$with_lcms" == xcheck; then
+ PKG_CHECK_MODULES(LCMS2, lcms2 >= lcms2_required_version,
+ [have_lcms="yes (lcms2)"
+ AC_DEFINE(HAVE_LCMS, 1, [Define to 1 if lcms is available])
+ AC_DEFINE(HAVE_LCMS2, 1, [Define to 1 if lcms2 is available])
+ LCMS_CFLAGS="$LCMS2_CFLAGS"
+ LCMS_LIBS="$LCMS2_LIBS"
+ LCMS='lcms$(EXEEXT)'],
+ [if test "x$with_lcms" == xcheck; then
+ have_lcms="no (lcms not found)"
+ else
+ have_lcms="no (lcms2 not found)"
+ fi])
+ fi
+ fi
fi
+AC_SUBST(LCMS_CFLAGS)
+AC_SUBST(LCMS_LIBS)
AC_SUBST(LCMS)
-AM_CONDITIONAL(HAVE_LCMS, test "x$have_lcms" = xyes)
+AM_CONDITIONAL(HAVE_LCMS,
+ [test "x$have_lcms" = "xyes (lcms1)" || \
+ test "x$have_lcms" == "xyes (lcms2)"])
######################
diff --git a/modules/color-selector-cmyk-lcms.c b/modules/color-selector-cmyk-lcms.c
index 0d5d20f..c668c3e 100644
--- a/modules/color-selector-cmyk-lcms.c
+++ b/modules/color-selector-cmyk-lcms.c
@@ -19,7 +19,12 @@
#include <glib.h> /* lcms.h uses the "inline" keyword */
+#ifdef HAVE_LCMS1
#include <lcms.h>
+typedef DWORD cmsUInt32Number;
+#else
+#include <lcms2.h>
+#endif
#include <gtk/gtk.h>
@@ -152,7 +157,9 @@ colorsel_cmyk_class_init (ColorselCmykClass *klass)
selector_class->set_color = colorsel_cmyk_set_color;
selector_class->set_config = colorsel_cmyk_set_config;
+#ifdef HAVE_LCMS1
cmsErrorAction (LCMS_ERROR_IGNORE);
+#endif
}
static void
@@ -391,10 +398,16 @@ colorsel_cmyk_config_changed (ColorselCmyk *module)
{
GimpColorSelector *selector = GIMP_COLOR_SELECTOR (module);
GimpColorConfig *config = module->config;
- DWORD flags = 0;
+ cmsUInt32Number flags = 0;
+#ifdef HAVE_LCMS2
+ cmsUInt32Number descSize = 0;
+#endif
cmsHPROFILE rgb_profile;
cmsHPROFILE cmyk_profile;
- const gchar *name;
+#ifdef HAVE_LCMS2
+ gchar *descData;
+#endif
+ const gchar *name = NULL;
gchar *text;
if (module->rgb2cmyk)
@@ -419,13 +432,55 @@ colorsel_cmyk_config_changed (ColorselCmyk *module)
! (cmyk_profile = cmsOpenProfileFromFile (config->cmyk_profile, "r")))
goto out;
+#ifdef HAVE_LCMS1
name = cmsTakeProductDesc (cmyk_profile);
+#else
+ descSize = cmsGetProfileInfoASCII (cmyk_profile, cmsInfoDescription,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII (cmyk_profile, cmsInfoDescription,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ {
+ name = descData;
+ }
+ else
+ {
+ g_free (descData);
+ descData = NULL;
+ }
+ }
+#endif
+
if (name && ! g_utf8_validate (name, -1, NULL))
name = _("(invalid UTF-8 string)");
if (! name)
{
+#ifdef HAVE_LCMS1
name = cmsTakeProductName (cmyk_profile);
+#else
+ descSize = cmsGetProfileInfoASCII (cmyk_profile, cmsInfoModel,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII (cmyk_profile, cmsInfoModel,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ {
+ name = descData;
+ }
+ else
+ {
+ g_free (descData);
+ descData = NULL;
+ }
+ }
+#endif
+
if (name && ! g_utf8_validate (name, -1, NULL))
name = _("(invalid UTF-8 string)");
}
@@ -435,6 +490,11 @@ colorsel_cmyk_config_changed (ColorselCmyk *module)
gimp_help_set_help_data (module->name_label, text, NULL);
g_free (text);
+#ifdef HAVE_LCMS2
+ if (descData)
+ g_free (descData);
+#endif
+
rgb_profile = color_config_get_rgb_profile (config);
if (config->display_intent ==
diff --git a/modules/display-filter-lcms.c b/modules/display-filter-lcms.c
index 015fe07..9a2350c 100644
--- a/modules/display-filter-lcms.c
+++ b/modules/display-filter-lcms.c
@@ -27,7 +27,12 @@
#define LCMS_WIN_TYPES_ALREADY_DEFINED
#endif
+#ifdef HAVE_LCMS1
#include <lcms.h>
+typedef DWORD cmsUInt32Number;
+#else
+#include <lcms2.h>
+#endif
#include <gtk/gtk.h>
@@ -136,7 +141,9 @@ cdisplay_lcms_class_init (CdisplayLcmsClass *klass)
display_class->convert_surface = cdisplay_lcms_convert_surface;
display_class->changed = cdisplay_lcms_changed;
+#ifdef HAVE_LCMS1
cmsErrorAction (LCMS_ERROR_IGNORE);
+#endif
}
static void
@@ -164,28 +171,101 @@ cdisplay_lcms_finalize (GObject *object)
G_OBJECT_CLASS (cdisplay_lcms_parent_class)->finalize (object);
}
+#ifdef HAVE_LCMS1
static void
cdisplay_lcms_profile_get_info (cmsHPROFILE profile,
const gchar **name,
const gchar **info)
+#else
+static void
+cdisplay_lcms_profile_get_info (cmsHPROFILE profile,
+ gchar **name,
+ gchar **info)
+#endif
{
if (profile)
{
+#ifdef HAVE_LCMS1
*name = cmsTakeProductDesc (profile);
+#else
+ cmsUInt32Number descSize;
+ gchar *descData;
+
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoDescription,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoDescription,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ *name = descData;
+ else
+ g_free (descData);
+ }
+#endif
if (! *name)
+#ifdef HAVE_LCMS1
*name = cmsTakeProductName (profile);
+#else
+ {
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoModel,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII(profile, cmsInfoModel,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ *name = descData;
+ else
+ g_free (descData);
+ }
+#endif
+ }
+#ifdef HAVE_LCMS1
if (*name && ! g_utf8_validate (*name, -1, NULL))
*name = _("(invalid UTF-8 string)");
*info = cmsTakeProductInfo (profile);
if (*name && ! g_utf8_validate (*info, -1, NULL))
*info = NULL;
+#else
+ if (*name && ! g_utf8_validate (*name, -1, NULL))
+ {
+ g_free (*name);
+ *name = g_strdup (_("(invalid UTF-8 string)"));
+ }
+
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoManufacturer,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoManufacturer,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ *info = descData;
+ else
+ g_free (descData);
+ }
+
+ if (*info && ! g_utf8_validate (*info, -1, NULL))
+ {
+ g_free (*info);
+ *info = NULL;
+ }
+#endif
}
else
{
+#ifdef HAVE_LCMS1
*name = _("None");
+#else
+ *name = g_strdup (_("None"));
+#endif
*info = NULL;
}
}
@@ -315,7 +395,10 @@ cdisplay_lcms_changed (GimpColorDisplay *display)
cmsHPROFILE src_profile = NULL;
cmsHPROFILE dest_profile = NULL;
cmsHPROFILE proof_profile = NULL;
- DWORD flags = 0;
+ cmsUInt32Number flags = 0;
+#ifdef HAVE_LCMS2
+ cmsUInt16Number alarmCodes[cmsMAXCHANNELS] = { 0 };
+#endif
if (lcms->transform)
{
@@ -365,7 +448,15 @@ cdisplay_lcms_changed (GimpColorDisplay *display)
gimp_rgb_get_uchar (&config->out_of_gamut_color, &r, &g, &b);
+#ifdef HAVE_LCMS1
cmsSetAlarmCodes (r, g, b);
+#else
+ alarmCodes[0] = (cmsUInt16Number) r;
+ alarmCodes[1] = (cmsUInt16Number) g;
+ alarmCodes[2] = (cmsUInt16Number) b;
+
+ cmsSetAlarmCodes (alarmCodes);
+#endif
}
lcms->transform = cmsCreateProofingTransform (src_profile, TYPE_ARGB_8,
@@ -400,7 +491,11 @@ cdisplay_lcms_changed (GimpColorDisplay *display)
static gboolean
cdisplay_lcms_profile_is_rgb (cmsHPROFILE profile)
{
+#ifdef HAVE_LCMS1
return (cmsGetColorSpace (profile) == icSigRgbData);
+#else
+ return (cmsGetColorSpace (profile) == cmsSigRgbData);
+#endif
}
static cmsHPROFILE
@@ -621,8 +716,13 @@ cdisplay_lcms_update_profile_label (CdisplayLcms *lcms,
{
GtkWidget *label;
cmsHPROFILE profile = NULL;
+#ifdef HAVE_LCMS1
const gchar *text;
const gchar *tooltip;
+#else
+ gchar *text = NULL;
+ gchar *tooltip = NULL;
+#endif
label = g_object_get_data (G_OBJECT (lcms), name);
@@ -651,6 +751,11 @@ cdisplay_lcms_update_profile_label (CdisplayLcms *lcms,
gtk_label_set_text (GTK_LABEL (label), text);
gimp_help_set_help_data (label, tooltip, NULL);
+#ifdef HAVE_LCMS2
+ g_free (text);
+ g_free (tooltip);
+#endif
+
if (profile)
cmsCloseProfile (profile);
}
diff --git a/modules/display-filter-proof.c b/modules/display-filter-proof.c
index 41967f5..c10463a 100644
--- a/modules/display-filter-proof.c
+++ b/modules/display-filter-proof.c
@@ -19,7 +19,12 @@
#include <glib.h> /* lcms.h uses the "inline" keyword */
+#ifdef HAVE_LCMS1
#include <lcms.h>
+typedef DWORD cmsUInt32Number;
+#else
+#include <lcms2.h>
+#endif
#include <gtk/gtk.h>
@@ -146,7 +151,9 @@ cdisplay_proof_class_init (CdisplayProofClass *klass)
display_class->configure = cdisplay_proof_configure;
display_class->changed = cdisplay_proof_changed;
+#ifdef HAVE_LCMS1
cmsErrorAction (LCMS_ERROR_IGNORE);
+#endif
}
static void
@@ -298,9 +305,45 @@ cdisplay_proof_combo_box_set_active (GimpColorProfileComboBox *combo,
if (profile)
{
+#ifdef HAVE_LCMS1
label = gimp_any_to_utf8 (cmsTakeProductDesc (profile), -1, NULL);
+#else
+ cmsUInt32Number descSize;
+ gchar *descData;
+
+ descSize = cmsGetProfileInfoASCII(profile, cmsInfoDescription,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoDescription,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ label = gimp_any_to_utf8 (descData, -1, NULL);
+
+ g_free (descData);
+ }
+#endif
+
if (! label)
+#ifdef HAVE_LCMS1
label = gimp_any_to_utf8 (cmsTakeProductName (profile), -1, NULL);
+#else
+ {
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoModel,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoModel,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ label = gimp_any_to_utf8 (descData, -1, NULL);
+
+ g_free (descData);
+ }
+#endif
+ }
cmsCloseProfile (profile);
}
@@ -465,7 +508,7 @@ cdisplay_proof_changed (GimpColorDisplay *display)
if (proofProfile)
{
- DWORD flags = cmsFLAGS_SOFTPROOFING;
+ cmsUInt32Number flags = cmsFLAGS_SOFTPROOFING;
if (proof->bpc)
flags |= cmsFLAGS_BLACKPOINTCOMPENSATION;
diff --git a/plug-ins/common/lcms.c b/plug-ins/common/lcms.c
index cb9ff57..cbbc53e 100644
--- a/plug-ins/common/lcms.c
+++ b/plug-ins/common/lcms.c
@@ -24,7 +24,12 @@
#include <glib.h> /* lcms.h uses the "inline" keyword */
+#ifdef HAVE_LCMS1
#include <lcms.h>
+typedef DWORD cmsUInt32Number;
+#else
+#include <lcms2.h>
+#endif
#include <libgimp/gimp.h>
#include <libgimp/gimpui.h>
@@ -428,7 +433,9 @@ run (const gchar *name,
}
}
+#ifdef HAVE_LCMS1
cmsErrorAction (LCMS_ERROR_SHOW);
+#endif
switch (proc)
{
@@ -459,7 +466,9 @@ run (const gchar *name,
gchar *desc = NULL;
gchar *info = NULL;
+#ifdef HAVE_LCMS1
cmsErrorAction (LCMS_ERROR_IGNORE);
+#endif
if (proc == PROC_INFO)
status = lcms_icc_info (config, image, &name, &desc, &info);
@@ -496,25 +505,92 @@ run (const gchar *name,
static gchar *
lcms_icc_profile_get_name (cmsHPROFILE profile)
{
+#ifdef HAVE_LCMS1
return gimp_any_to_utf8 (cmsTakeProductName (profile), -1, NULL);
+#else
+ cmsUInt32Number descSize;
+ gchar *descData;
+ gchar *name = NULL;
+
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoModel,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoModel,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ name = gimp_any_to_utf8 (descData, -1, NULL);
+
+ g_free (descData);
+ }
+
+ return name;
+#endif
}
static gchar *
lcms_icc_profile_get_desc (cmsHPROFILE profile)
{
+#ifdef HAVE_LCMS1
return gimp_any_to_utf8 (cmsTakeProductDesc (profile), -1, NULL);
+#else
+ cmsUInt32Number descSize;
+ gchar *descData;
+ gchar *desc = NULL;
+
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoDescription,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoDescription,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ desc = gimp_any_to_utf8 (descData, -1, NULL);
+
+ g_free (descData);
+ }
+
+ return desc;
+#endif
}
static gchar *
lcms_icc_profile_get_info (cmsHPROFILE profile)
{
+#ifdef HAVE_LCMS1
return gimp_any_to_utf8 (cmsTakeProductInfo (profile), -1, NULL);
+#else
+ cmsUInt32Number descSize;
+ gchar *descData;
+ gchar *info = NULL;
+
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoModel,
+ "en", "US", NULL, 0);
+ if (descSize > 0)
+ {
+ descData = g_new (gchar, descSize + 1);
+ descSize = cmsGetProfileInfoASCII (profile, cmsInfoModel,
+ "en", "US", descData, descSize);
+ if (descSize > 0)
+ info = gimp_any_to_utf8 (descData, -1, NULL);
+
+ g_free (descData);
+ }
+
+ return info;
+#endif
}
static gboolean
lcms_icc_profile_is_rgb (cmsHPROFILE profile)
{
+#ifdef HAVE_LCMS1
return (cmsGetColorSpace (profile) == icSigRgbData);
+#else
+ return (cmsGetColorSpace (profile) == cmsSigRgbData);
+#endif
}
static GimpPDBStatusType
@@ -737,9 +813,15 @@ lcms_calculate_checksum (const gchar *data,
{
GChecksum *md5 = g_checksum_new (G_CHECKSUM_MD5);
+#ifdef HAVE_LCMS1
g_checksum_update (md5,
(const guchar *) data + sizeof (icHeader),
len - sizeof (icHeader));
+#else
+ g_checksum_update (md5,
+ (const guchar *) data + sizeof (cmsICCHeader),
+ len - sizeof (cmsICCHeader));
+#endif
len = 16;
g_checksum_get_digest (md5, digest, &len);
@@ -934,18 +1016,18 @@ lcms_image_transform_rgb (gint32 image,
GimpColorRenderingIntent intent,
gboolean bpc)
{
- cmsHTRANSFORM transform = NULL;
- DWORD last_format = 0;
- gint *layers;
- gint num_layers;
- gint i;
+ cmsHTRANSFORM transform = NULL;
+ cmsUInt32Number last_format = 0;
+ gint *layers;
+ gint num_layers;
+ gint i;
layers = gimp_image_get_layers (image, &num_layers);
for (i = 0; i < num_layers; i++)
{
- GimpDrawable *drawable = gimp_drawable_get (layers[i]);
- DWORD format;
+ GimpDrawable *drawable = gimp_drawable_get (layers[i]);
+ cmsUInt32Number format;
switch (drawable->bpp)
{
diff --git a/plug-ins/file-jpeg/jpeg-load.c b/plug-ins/file-jpeg/jpeg-load.c
index 87267fd..3609029 100644
--- a/plug-ins/file-jpeg/jpeg-load.c
+++ b/plug-ins/file-jpeg/jpeg-load.c
@@ -31,7 +31,12 @@
#endif /* HAVE_LIBEXIF */
#ifdef HAVE_LCMS
+#ifdef HAVE_LCMS1
#include <lcms.h>
+typedef DWORD cmsUInt32Number;
+#else
+#include <lcms2.h>
+#endif
#endif
#include <libgimp/gimp.h>
@@ -966,7 +971,7 @@ jpeg_load_cmyk_transform (guint8 *profile_data,
GimpColorConfig *config = gimp_get_color_configuration ();
cmsHPROFILE cmyk_profile = NULL;
cmsHPROFILE rgb_profile = NULL;
- DWORD flags = 0;
+ cmsUInt32Number flags = 0;
cmsHTRANSFORM transform;
/* try to load the embedded CMYK profile */
@@ -976,7 +981,11 @@ jpeg_load_cmyk_transform (guint8 *profile_data,
if (cmyk_profile)
{
+#ifdef HAVE_LCMS1
if (! cmsGetColorSpace (cmyk_profile) == icSigCmykData)
+#else
+ if (! cmsGetColorSpace (cmyk_profile) == cmsSigCmykData)
+#endif
{
cmsCloseProfile (cmyk_profile);
cmyk_profile = NULL;
@@ -989,7 +998,11 @@ jpeg_load_cmyk_transform (guint8 *profile_data,
{
cmyk_profile = cmsOpenProfileFromFile (config->cmyk_profile, "r");
+#ifdef HAVE_LCMS1
if (cmyk_profile && ! cmsGetColorSpace (cmyk_profile) == icSigCmykData)
+#else
+ if (cmyk_profile && ! cmsGetColorSpace (cmyk_profile) == cmsSigCmykData)
+#endif
{
cmsCloseProfile (cmyk_profile);
cmyk_profile = NULL;
@@ -1008,7 +1021,11 @@ jpeg_load_cmyk_transform (guint8 *profile_data,
{
rgb_profile = cmsOpenProfileFromFile (config->rgb_profile, "r");
+#ifdef HAVE_LCMS1
if (rgb_profile && ! cmsGetColorSpace (rgb_profile) == icSigRgbData)
+#else
+ if (rgb_profile && ! cmsGetColorSpace (rgb_profile) == cmsSigRgbData)
+#endif
{
cmsCloseProfile (rgb_profile);
rgb_profile = NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]