[gimp] libgimpconfig: add functions to get GimpColorProfiles to GimpColorConfig
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimpconfig: add functions to get GimpColorProfiles to GimpColorConfig
- Date: Wed, 6 May 2015 14:40:44 +0000 (UTC)
commit 54553487f2cd59dfc700bd3468492adf2151e9c4
Author: Michael Natterer <mitch gimp org>
Date: Wed May 6 16:32:17 2015 +0200
libgimpconfig: add functions to get GimpColorProfiles to GimpColorConfig
gimp_color_config_get_rgb,cmyk,display,printer_profile()
libgimpconfig/gimpcolorconfig.c | 102 +++++++++++++++++++++++++++++++++++++++
libgimpconfig/gimpcolorconfig.h | 11 ++++-
libgimpconfig/gimpconfig.def | 4 ++
3 files changed, 116 insertions(+), 1 deletions(-)
---
diff --git a/libgimpconfig/gimpcolorconfig.c b/libgimpconfig/gimpcolorconfig.c
index fc32f73..bf8d87a 100644
--- a/libgimpconfig/gimpcolorconfig.c
+++ b/libgimpconfig/gimpcolorconfig.c
@@ -342,3 +342,105 @@ gimp_color_config_get_property (GObject *object,
break;
}
}
+
+GimpColorProfile
+gimp_color_config_get_rgb_profile (GimpColorConfig *config,
+ GError **error)
+{
+ GimpColorProfile profile = NULL;
+
+ g_return_val_if_fail (GIMP_IS_COLOR_CONFIG (config), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ if (config->rgb_profile)
+ {
+ GFile *file = g_file_new_for_path (config->rgb_profile);
+
+ profile = gimp_lcms_profile_open_from_file (file, error);
+
+ if (profile && ! gimp_lcms_profile_is_rgb (profile))
+ {
+ gimp_lcms_profile_close (profile);
+ profile = NULL;
+
+ g_set_error (error, 0, 0,
+ _("Color profile '%s' is not for RGB color space"),
+ gimp_file_get_utf8_name (file));
+ }
+
+ g_object_unref (file);
+ }
+
+ return profile;
+}
+
+GimpColorProfile
+gimp_color_config_get_cmyk_profile (GimpColorConfig *config,
+ GError **error)
+{
+ GimpColorProfile profile = NULL;
+
+ g_return_val_if_fail (GIMP_IS_COLOR_CONFIG (config), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ if (config->cmyk_profile)
+ {
+ GFile *file = g_file_new_for_path (config->cmyk_profile);
+
+ profile = gimp_lcms_profile_open_from_file (file, error);
+
+ if (profile && ! gimp_lcms_profile_is_cmyk (profile))
+ {
+ gimp_lcms_profile_close (profile);
+ profile = NULL;
+
+ g_set_error (error, 0, 0,
+ _("Color profile '%s' is not for RGB color space"),
+ gimp_file_get_utf8_name (file));
+ }
+
+ g_object_unref (file);
+ }
+
+ return profile;
+}
+
+GimpColorProfile
+gimp_color_config_get_display_profile (GimpColorConfig *config,
+ GError **error)
+{
+ GimpColorProfile profile = NULL;
+
+ g_return_val_if_fail (GIMP_IS_COLOR_CONFIG (config), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ if (config->display_profile)
+ {
+ GFile *file = g_file_new_for_path (config->display_profile);
+
+ profile = gimp_lcms_profile_open_from_file (file, error);
+ g_object_unref (file);
+ }
+
+ return profile;
+}
+
+GimpColorProfile
+gimp_color_config_get_printer_profile (GimpColorConfig *config,
+ GError **error)
+{
+ GimpColorProfile profile = NULL;
+
+ g_return_val_if_fail (GIMP_IS_COLOR_CONFIG (config), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ if (config->printer_profile)
+ {
+ GFile *file = g_file_new_for_path (config->printer_profile);
+
+ profile = gimp_lcms_profile_open_from_file (file, error);
+ g_object_unref (file);
+ }
+
+ return profile;
+}
diff --git a/libgimpconfig/gimpcolorconfig.h b/libgimpconfig/gimpcolorconfig.h
index 9d99428..fbd6cce 100644
--- a/libgimpconfig/gimpcolorconfig.h
+++ b/libgimpconfig/gimpcolorconfig.h
@@ -77,7 +77,16 @@ struct _GimpColorConfigClass
};
-GType gimp_color_config_get_type (void) G_GNUC_CONST;
+GType gimp_color_config_get_type (void) G_GNUC_CONST;
+
+GimpColorProfile gimp_color_config_get_rgb_profile (GimpColorConfig *config,
+ GError **error);
+GimpColorProfile gimp_color_config_get_cmyk_profile (GimpColorConfig *config,
+ GError **error);
+GimpColorProfile gimp_color_config_get_display_profile (GimpColorConfig *config,
+ GError **error);
+GimpColorProfile gimp_color_config_get_printer_profile (GimpColorConfig *config,
+ GError **error);
#endif /* GIMP_COLOR_CONFIG_H__ */
diff --git a/libgimpconfig/gimpconfig.def b/libgimpconfig/gimpconfig.def
index 30907b1..35b2d76 100644
--- a/libgimpconfig/gimpconfig.def
+++ b/libgimpconfig/gimpconfig.def
@@ -1,4 +1,8 @@
EXPORTS
+ gimp_color_config_get_cmyk_profile
+ gimp_color_config_get_display_profile
+ gimp_color_config_get_printer_profile
+ gimp_color_config_get_rgb_profile
gimp_color_config_get_type
gimp_color_management_mode_get_type
gimp_color_rendering_intent_get_type
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]