[Gimp-developer] Code for editing in non-sRGB color spaces (was Re: suggestions)
- From: Elle Stone <ellestone ninedegreesbelow com>
- To: gimp-developer-list gnome org
- Subject: [Gimp-developer] Code for editing in non-sRGB color spaces (was Re: suggestions)
- Date: Tue, 5 Apr 2016 13:06:00 -0400
On 04/05/2016 12:17 PM, Alexandre Prokoudine wrote:
Anything in that section can be moved to e.g. 3.2 provided there is a
developer working on any of the features listed there. At some point, the
unified transform tool was there too. Then Mikael came, and now it's a
v2.10 feature.
Two years ago I spent a lot of time trying to figure out how to pass RGB
colorant information around GIMP and back to babl, but failed to make
any progress.
I've been taking another look at the relevant babl/GEGL/GIMP code, but
the task still seems to be way above my coding level. I suppose I should
ask for help. So here are two questions:
1. Code for retrieving colorant information from an ICC RGB working
space profile embedded in an image is already in
https://github.com/GNOME/gimp/blob/master/libgimpcolor/gimpcolorprofile.c
Can the following babl functions from
https://github.com/GNOME/babl/blob/master/babl/babl.h be used to send
RGB colorant information (a 3x3 matrix) from GIMP to various babl
functions that use Y and XYZ information?
/**
* babl_set_user_data: (skip)
*
* associate a data pointer with a format/model, this data can be
accessed and
* used from the conversion functions, encoding color profiles, palettes or
* similar with the data, perhaps this should be made internal API, not
* accesible at all from
*/
void babl_set_user_data (const Babl *babl, void *data);
/**
* babl_get_user_data: (skip)
*
* Get data set with babl_set_user_data
*/
void * babl_get_user_data (const Babl *babl);
2. Instead of full-blown support for editing in all RGB working spaces,
would it be easier and maybe even better to start with hard-coding into
babl/GEGL/GIMP an assortment of commonly-used RGB working space
chromaticities, including:
sRGB
Rec.2020
ACEScg
ACES
AdobeRGB
ProPhotoRGB
and then pass a numerical identifier from GIMP to babl as the user
switches from one image to another, so babl knows what chromaticities to
use? This option of course would require that the user make an ICC
profile conversion to one of the hard-coded RGB working spaces. But
given the many ICC RGB profiles floating around that are not
well-behaved and/or have odd TRCs, maybe this is the better option.
Though support for "random RGB chromaticities" would be nice to
eventually add in.
I don't think I understand the relevant portions of
https://github.com/GNOME/babl/blob/master/docs/roadmap.txt. If I do
understand, the plan in the roadmap seems to require rewriting major
portions of babl/GEGL/GIMP.
If it were possible to use babl_set_user_data and babl_get_user_data to
pass along colorant information, or else a numerical reference to a
selection of hard-coded chromaticities for commonly-used RGB working
spaces, this approach would seem to be a lot less invasive of the
existing code.
Very likely I've overlooked major coding obstacles. And as I already
noted, it's very likely that I simply don't have sufficient coding
skills to add the ability to edit in non-sRGB color spaces to GIMP.
Best,
Elle
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]