diff --git a/app/gegl/gimp-babl.c b/app/gegl/gimp-babl.c index 8e574802ac..b2dc20a859 100644 --- a/app/gegl/gimp-babl.c +++ b/app/gegl/gimp-babl.c @@ -1285,6 +1285,32 @@ gimp_babl_component_format (GimpImageBaseType base_type, g_return_val_if_reached (NULL); } +const Babl * +gimp_babl_format_change_component_type (const Babl *format, + GimpComponentType component) +{ + g_return_val_if_fail (format != NULL, NULL); + + return gimp_babl_format (gimp_babl_format_get_base_type (format), + gimp_babl_precision ( + component, + gimp_babl_format_get_linear (format)), + babl_format_has_alpha (format)); +} + +const Babl * +gimp_babl_format_change_linear (const Babl *format, + gboolean linear) +{ + g_return_val_if_fail (format != NULL, NULL); + + return gimp_babl_format (gimp_babl_format_get_base_type (format), + gimp_babl_precision ( + gimp_babl_format_get_component_type (format), + linear), + babl_format_has_alpha (format)); +} + gchar ** gimp_babl_print_pixel (const Babl *format, gpointer pixel) diff --git a/app/gegl/gimp-babl.h b/app/gegl/gimp-babl.h index 254f45980d..3062e02425 100644 --- a/app/gegl/gimp-babl.h +++ b/app/gegl/gimp-babl.h @@ -22,36 +22,41 @@ #define __GIMP_BABL_H__ -void gimp_babl_init (void); -void gimp_babl_init_fishes (GimpInitStatusFunc status_callback); +void gimp_babl_init (void); +void gimp_babl_init_fishes (GimpInitStatusFunc status_callback); -const gchar * gimp_babl_format_get_description (const Babl *format); -GimpColorProfile * gimp_babl_format_get_color_profile (const Babl *format); +const gchar * gimp_babl_format_get_description (const Babl *format); +GimpColorProfile * gimp_babl_format_get_color_profile (const Babl *format); -GimpImageBaseType gimp_babl_format_get_base_type (const Babl *format); -GimpComponentType gimp_babl_format_get_component_type (const Babl *format); -GimpPrecision gimp_babl_format_get_precision (const Babl *format); -gboolean gimp_babl_format_get_linear (const Babl *format); +GimpImageBaseType gimp_babl_format_get_base_type (const Babl *format); +GimpComponentType gimp_babl_format_get_component_type (const Babl *format); +GimpPrecision gimp_babl_format_get_precision (const Babl *format); +gboolean gimp_babl_format_get_linear (const Babl *format); -GimpComponentType gimp_babl_component_type (GimpPrecision precision); -gboolean gimp_babl_linear (GimpPrecision precision); -GimpPrecision gimp_babl_precision (GimpComponentType component, - gboolean linear); +GimpComponentType gimp_babl_component_type (GimpPrecision precision); +gboolean gimp_babl_linear (GimpPrecision precision); +GimpPrecision gimp_babl_precision (GimpComponentType component, + gboolean linear); -gboolean gimp_babl_is_valid (GimpImageBaseType base_type, - GimpPrecision precision); -GimpComponentType gimp_babl_is_bounded (GimpPrecision precision); +gboolean gimp_babl_is_valid (GimpImageBaseType base_type, + GimpPrecision precision); +GimpComponentType gimp_babl_is_bounded (GimpPrecision precision); -const Babl * gimp_babl_format (GimpImageBaseType base_type, - GimpPrecision precision, - gboolean with_alpha); -const Babl * gimp_babl_mask_format (GimpPrecision precision); -const Babl * gimp_babl_component_format (GimpImageBaseType base_type, - GimpPrecision precision, - gint index); +const Babl * gimp_babl_format (GimpImageBaseType base_type, + GimpPrecision precision, + gboolean with_alpha); +const Babl * gimp_babl_mask_format (GimpPrecision precision); +const Babl * gimp_babl_component_format (GimpImageBaseType base_type, + GimpPrecision precision, + gint index); -gchar ** gimp_babl_print_pixel (const Babl *format, - gpointer pixel); +const Babl * gimp_babl_format_change_component_type (const Babl *format, + GimpComponentType component); +const Babl * gimp_babl_format_change_linear (const Babl *format, + gboolean linear); + +gchar ** gimp_babl_print_pixel (const Babl *format, + gpointer pixel); #endif /* __GIMP_BABL_H__ */