RSS/Atom feed Twitter
Site is read-only, email is disabled

How to retrieve the monitor profile from inside a plug-in

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

12 of 12 messages available
Toggle history

Please log in to manage your subscriptions.

How to retrieve the monitor profile from inside a plug-in Carmelo DrRaw 06 Sep 07:53
  How to retrieve the monitor profile from inside a plug-in Michael Natterer 06 Sep 13:54
   How to retrieve the monitor profile from inside a plug-in Carmelo DrRaw 06 Sep 14:30
    How to retrieve the monitor profile from inside a plug-in Michael Natterer 06 Sep 14:41
     How to retrieve the monitor profile from inside a plug-in Carmelo DrRaw 06 Sep 14:47
      How to retrieve the monitor profile from inside a plug-in Michael Natterer 06 Sep 16:35
       How to retrieve the monitor profile from inside a plug-in Carmelo DrRaw 06 Sep 18:13
        How to retrieve the monitor profile from inside a plug-in C R 07 Sep 20:28
         How to retrieve the monitor profile from inside a plug-in Carmelo DrRaw 07 Sep 20:33
          How to retrieve the monitor profile from inside a plug-in C R 08 Sep 07:01
           How to retrieve the monitor profile from inside a plug-in Carmelo DrRaw 08 Sep 07:43
            How to retrieve the monitor profile from inside a plug-in C R 08 Sep 08:07
Carmelo DrRaw
2016-09-06 07:53:39 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

Dear experts,

I am trying to improve the G’MIC plug-in by adding color management of the preview area. For this, I need to retrieve the GIMP monitor profile from inside the plug-in code.

I have tried the following:

GimpColorConfig* color_config = gimp_get_color_configuration(); if(color_config)
GimpColorProfile* dpy_profile = gimp_color_config_get_display_color_profile(color_config, NULL);

While the code compiles just fine, I get undefined symbol for get_display_profile() function at link time. Note that gimp_color_config_get_display_color_profile() is correctly found by the linker, so I tend to exclude missing libraries in the linker command, which I put here for reference:

/usr/bin/c++ -O0 -g -ansi -pedantic -Dcimg_verbosity=3 -Dgmic_build -Dcimg_use_vt100 -Dgmic_is_parallel -Dcimg_use_abort -std=gnu++11 -Wno-error=narrowing -fno-ipa-sra -fpermissive -fopenmp -Dcimg_use_openmp -Dcimg_use_zlib -Dcimg_display=1 -Dcimg_appname=\"gmic\" -Dcimg_use_xshm -Dcimg_use_fftw3 -Dcimg_use_opencv -Dcimg_use_magick -Dcimg_use_tiff -Dcimg_use_png -Dcimg_use_jpeg -Dcimg_use_openexr CMakeFiles/gmic_gimp.dir/src/gmic.cpp.o CMakeFiles/gmic_gimp.dir/src/gmic_gimp.cpp.o -o gmic_gimp -L/zzz/lib -rdynamic -lSM -lICE -lX11 -lXext -ltiff -lpng -lz -ljpeg -lGraphicsMagick++ -lGraphicsMagick -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lz -lfftw3 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgtk-x11-2.0 -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype -lpthread -lgomp -lfftw3_threads -ljpeg -lGraphicsMagick++ -lGraphicsMagick -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lfftw3 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -lpango-1.0 -lfontconfig -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -lpango-1.0 -lfontconfig -lfreetype -lpthread -lgomp -lfftw3_threads -Wl,-rpath,/zzz/lib

What could I be doing wrong? Or what is the right way to retrieve the monitor profile?

Thanks in advance!

Andrea

Michael Natterer
2016-09-06 13:54:24 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

On Tue, 2016-09-06 at 09:53 +0200, Carmelo DrRaw wrote:

Dear experts,

I am trying to improve the G’MIC plug-in by adding color management of the preview area. For this, I need to retrieve the GIMP monitor profile from inside the plug-in code.

What preview area do you use? In git master you simply call

gimp_color_area_set_color_config()

I wouldn't bother to do anything with plug-in color management.

Regards, --Mitch

I have tried the following:

  GimpColorConfig* color_config = gimp_get_color_configuration();   if(color_config)
    GimpColorProfile* dpy_profile =
gimp_color_config_get_display_color_profile(color_config, NULL);

While the code compiles just fine, I get undefined symbol for get_display_profile() function at link time. Note that gimp_color_config_get_display_color_profile() is correctly found by the linker, so I tend to exclude missing libraries in the linker command, which I put here for reference:

/usr/bin/c++    -O0 -g -ansi -pedantic -Dcimg_verbosity=3              -Dgmic_build -Dcimg_use_vt100 -Dgmic_is_parallel -Dcimg_use_abort  -std=gnu++11 -Wno- error=narrowing -fno-ipa-sra -fpermissive -fopenmp -Dcimg_use_openmp  -Dcimg_use_zlib  -Dcimg_display=1 -Dcimg_appname=\"gmic\"  -Dcimg_use_xshm  -Dcimg_use_fftw3  - Dcimg_use_opencv  -Dcimg_use_magick  -Dcimg_use_tiff  - Dcimg_use_png  -Dcimg_use_jpeg  -
Dcimg_use_openexr     CMakeFiles/gmic_gimp.dir/src/gmic.cpp.o CMakeFiles/gmic_gimp.dir/src/gmic_gimp.cpp.o  -o gmic_gimp  - L/zzz/lib -rdynamic -lSM -lICE -lX11 -lXext -ltiff -lpng -lz -ljpeg -lGraphicsMagick++ -lGraphicsMagick -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lz -lfftw3 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgtk- x11-2.0 -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype -lpthread -lgomp  -lfftw3_threads -ljpeg -lGraphicsMagick++ -lGraphicsMagick -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lfftw3 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgtk-x11- 2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -lpango- 1.0 -lfontconfig -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule- 2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -lpango-1.0 -lfontconfig -lfreetype -lpthread -lgomp  -lfftw3_threads -Wl,-rpath,/zzz/lib 

What could I be doing wrong? Or what is the right way to retrieve the monitor profile?

Thanks in advance!

Andrea _______________________________________________ gimp-developer-list mailing list
List address:    gimp-developer-list@gnome.org List membership: https://mail.gnome.org/mailman/listinfo/gimp-develop er-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list

Carmelo DrRaw
2016-09-06 14:30:15 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

On 06 Sep 2016, at 15:54, Michael Natterer wrote:

On Tue, 2016-09-06 at 09:53 +0200, Carmelo DrRaw wrote:

Dear experts,

I am trying to improve the G’MIC plug-in by adding color management of the preview area. For this, I need to retrieve the GIMP monitor profile from inside the plug-in code.

What preview area do you use? In git master you simply call

gimp_color_area_set_color_config()

G’MIC uses the following code to initialise the preview area:

const int preview_drawable_id = gimp_image_get_active_drawable(preview_image_id?preview_image_id:image_id); gui_preview = gimp_zoom_preview_new_from_drawable_id(preview_drawable_id);

Can it be used with gimp_color_area_set_color_config()? I could not find any documentation of the latter function...

I wouldn't bother to do anything with plug-in color management.

I don’t understand what you mean… in the G’MIC plug-in, the preview area is used to judge the visual output of a given filter, and to tweak parameters accordingly. However, if the monitor profile is not taken into account by the plug-in, in many cases the g’mic preview will not match what the user sees on screen once the plug-in is closed… this makes any serious usage of the g’mic plug-in at least questionable.

So personally I bother a lot improving the g’mic plug-in in this direction, and I’m ready to spend some spare time on that. But I need to know how to retrieve the monitor profile.

regards, Andrea

Regards,
--Mitch

I have tried the following:

GimpColorConfig* color_config = gimp_get_color_configuration(); if(color_config)
GimpColorProfile* dpy_profile =
gimp_color_config_get_display_color_profile(color_config, NULL);

While the code compiles just fine, I get undefined symbol for get_display_profile() function at link time. Note that gimp_color_config_get_display_color_profile() is correctly found by the linker, so I tend to exclude missing libraries in the linker command, which I put here for reference:

/usr/bin/c++ -O0 -g -ansi -pedantic -Dcimg_verbosity=3 -Dgmic_build -Dcimg_use_vt100 -Dgmic_is_parallel -Dcimg_use_abort -std=gnu++11 -Wno- error=narrowing -fno-ipa-sra -fpermissive -fopenmp -Dcimg_use_openmp -Dcimg_use_zlib -Dcimg_display=1 -Dcimg_appname=\"gmic\" -Dcimg_use_xshm -Dcimg_use_fftw3 - Dcimg_use_opencv -Dcimg_use_magick -Dcimg_use_tiff - Dcimg_use_png -Dcimg_use_jpeg -
Dcimg_use_openexr CMakeFiles/gmic_gimp.dir/src/gmic.cpp.o CMakeFiles/gmic_gimp.dir/src/gmic_gimp.cpp.o -o gmic_gimp - L/zzz/lib -rdynamic -lSM -lICE -lX11 -lXext -ltiff -lpng -lz -ljpeg -lGraphicsMagick++ -lGraphicsMagick -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lz -lfftw3 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgtk- x11-2.0 -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype -lpthread -lgomp -lfftw3_threads -ljpeg -lGraphicsMagick++ -lGraphicsMagick -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lfftw3 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgtk-x11- 2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -lpango- 1.0 -lfontconfig -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgdk_pixbuf-2.0 -lcairo -lgegl-0.3 -lgegl-npd-0.3 -lm -lgmodule-2.0 -ljson-glib-1.0 -lbabl-0.1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule- 2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -lpango-1.0 -lfontconfig -lfreetype -lpthread -lgomp -lfftw3_threads -Wl,-rpath,/zzz/lib

What could I be doing wrong? Or what is the right way to retrieve the monitor profile?

Thanks in advance!

Andrea _______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org List membership: https://mail.gnome.org/mailman/listinfo/gimp-develop er-list
List archives: https://mail.gnome.org/archives/gimp-developer-list

Michael Natterer
2016-09-06 14:41:38 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

On Tue, 2016-09-06 at 16:30 +0200, Carmelo DrRaw wrote:

On 06 Sep 2016, at 15:54, Michael Natterer wrote:

On Tue, 2016-09-06 at 09:53 +0200, Carmelo DrRaw wrote:

Dear experts,

I am trying to improve the G’MIC plug-in by adding color management
of the preview area. For this, I need to retrieve the GIMP monitor
profile from inside the plug-in code.

What preview area do you use? In git master you simply call

gimp_color_area_set_color_config()

G’MIC uses the following code to initialise the preview area:

    const int preview_drawable_id = gimp_image_get_active_drawable(preview_image_id?preview_image_id:imag e_id);
    gui_preview =
gimp_zoom_preview_new_from_drawable_id(preview_drawable_id);

Can it be used with gimp_color_area_set_color_config()? I could not find any documentation of the latter function...

In GIMP git master, you would say

gimp_preview_area_set_color_config (gimp_preview_get_area (preview),                                     gimp_get_color_configuration ());

I wouldn't bother to do anything with plug-in color management.

I don’t understand what you mean… in the G’MIC plug-in, the preview area is used to judge the visual output of a given filter, and to tweak parameters accordingly. 
However, if the monitor profile is not taken into account by the plug-in, in many cases the g’mic preview will not match what the user sees on screen once the plug-in is closed… this makes any serious usage of the g’mic plug-in at least questionable.

So personally I bother a lot improving the g’mic plug-in in this direction, and I’m ready to spend some spare time on that. But I need to know how to retrieve the monitor profile.

My question was if this is a plug-in against GIMP 2.8 (soon obsolete) or against GIMP git master.

I wouldn't bother do add color management to a GIMP 2.8 plug-in and I have never tried.

Regards, --Mitch

Carmelo DrRaw
2016-09-06 14:47:20 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

On 06 Sep 2016, at 16:41, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:30 +0200, Carmelo DrRaw wrote:

In GIMP git master, you would say

gimp_preview_area_set_color_config (gimp_preview_get_area (preview), gimp_get_color_configuration ());

Thanks! However, I assume that the ICC conversion is done in this case using 8-bits precision, right?

I would like to take advantage of the fact that G’MIC handles floating-point precision, by doing the ICC conversion before the conversion to 8-bits…

My question was if this is a plug-in against GIMP 2.8 (soon obsolete) or against GIMP git master.

I wouldn't bother do add color management to a GIMP 2.8 plug-in and I have never tried.

I see… G’MIC is already adapted to high bit depth and 2.9 API, so I think it is worth adding proper color management.

Regards, Andrea

Michael Natterer
2016-09-06 16:35:27 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

On Tue, 2016-09-06 at 16:47 +0200, Carmelo DrRaw wrote:

On 06 Sep 2016, at 16:41, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:30 +0200, Carmelo DrRaw wrote:

In GIMP git master, you would say

gimp_preview_area_set_color_config (gimp_preview_get_area (preview),
                                    gimp_get_color_configuration ());

Thanks! However, I assume that the ICC conversion is done in this case using 8-bits precision, right?

I would like to take advantage of the fact that G’MIC handles floating-point precision, by doing the ICC conversion before the conversion to 8-bits…

Moreover, this API only makes sure an assumed-to-be-sRGB image is displayed correctly in 8 bit.

You can omit this call, and feed color-corrected pixels to the preview directly, look at the GimpColorTransform API in libgimpcolor, which is a simple wrapper around lcms (which you don't need to use at all).

For the image profile, use gimp_image_get_effective_color_profile(),

for getting the transform, best use gimp_widget_get_color_transform() which will look up the right display profile by itself.

Also, use gimp_widget_track_monitor() so you can recreate the transform when the window is moved to another monitor.

For example code, grep for

gimp_widget_get_color_transform gimp_widget_track_monitor

in libgimpwidgets/ and app/widgets/

Regards, --Mitch

My question was if this is a plug-in against GIMP 2.8 (soon obsolete)
or against GIMP git master.

I wouldn't bother do add color management to a GIMP 2.8 plug-in and I have never tried.

I see… G’MIC is already adapted to high bit depth and 2.9 API, so I think it is worth adding proper color management.

Regards, Andrea

_______________________________________________ gimp-developer-list mailing list
List address:    gimp-developer-list@gnome.org List membership: https://mail.gnome.org/mailman/listinfo/gimp-develop er-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list

Carmelo DrRaw
2016-09-06 18:13:05 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

Thanks, it worked!!!

The only part which is still missing is the tracking of monitor changes.

I have prepared a special GIMP AppImage with the patched gmic plug-in, if anyone is interested to test it and give some feedback: https://www.dropbox.com/s/xfo6okeqhx4kv5u/gimp-2.9.5-20160906.glibc2.15-x86_64.AppImage?dl=0

Regards, Andrea

On 06 Sep 2016, at 18:35, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:47 +0200, Carmelo DrRaw wrote:

On 06 Sep 2016, at 16:41, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:30 +0200, Carmelo DrRaw wrote:

In GIMP git master, you would say

gimp_preview_area_set_color_config (gimp_preview_get_area (preview),
gimp_get_color_configuration ());

Thanks! However, I assume that the ICC conversion is done in this case using 8-bits precision, right?

I would like to take advantage of the fact that G’MIC handles floating-point precision, by doing the ICC conversion before the conversion to 8-bits…

Moreover, this API only makes sure an assumed-to-be-sRGB image is displayed correctly in 8 bit.

You can omit this call, and feed color-corrected pixels to the preview directly, look at the GimpColorTransform API in libgimpcolor, which is a simple wrapper around lcms (which you don't need to use at all).

For the image profile, use gimp_image_get_effective_color_profile(),

for getting the transform, best use gimp_widget_get_color_transform() which will look up the right display profile by itself.

Also, use gimp_widget_track_monitor() so you can recreate the transform when the window is moved to another monitor.

For example code, grep for

gimp_widget_get_color_transform gimp_widget_track_monitor

in libgimpwidgets/ and app/widgets/

Regards, --Mitch

My question was if this is a plug-in against GIMP 2.8 (soon obsolete)
or against GIMP git master.

I wouldn't bother do add color management to a GIMP 2.8 plug-in and I have never tried.

I see… G’MIC is already adapted to high bit depth and 2.9 API, so I think it is worth adding proper color management.

Regards, Andrea

_______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org List membership: https://mail.gnome.org/mailman/listinfo/gimp-develop er-list
List archives: https://mail.gnome.org/archives/gimp-developer-list

C R
2016-09-07 20:28:03 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

This is fantastic! I could see this become my preferred way to use GIMP. G'MIC works like a charm, can't make it break. Used a 2000x2000 test image, and it just flies!
Well done, and thanks!

-C

On Tue, Sep 6, 2016 at 7:13 PM, Carmelo DrRaw wrote:

Thanks, it worked!!!

The only part which is still missing is the tracking of monitor changes.

I have prepared a special GIMP AppImage with the patched gmic plug-in, if anyone is interested to test it and give some feedback: https://www.dropbox.com/s/xfo6okeqhx4kv5u/gimp-2.9.5- 20160906.glibc2.15-x86_64.AppImage?dl=0

Regards, Andrea

On 06 Sep 2016, at 18:35, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:47 +0200, Carmelo DrRaw wrote:

On 06 Sep 2016, at 16:41, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:30 +0200, Carmelo DrRaw wrote:

In GIMP git master, you would say

gimp_preview_area_set_color_config (gimp_preview_get_area (preview),
gimp_get_color_configuration ());

Thanks! However, I assume that the ICC conversion is done in this case using 8-bits precision, right?

I would like to take advantage of the fact that G’MIC handles floating-point precision, by doing the ICC conversion before the conversion to 8-bits…

Moreover, this API only makes sure an assumed-to-be-sRGB image is displayed correctly in 8 bit.

You can omit this call, and feed color-corrected pixels to the preview directly, look at the GimpColorTransform API in libgimpcolor, which is a simple wrapper around lcms (which you don't need to use at all).

For the image profile, use gimp_image_get_effective_color_profile(),

for getting the transform, best use gimp_widget_get_color_transform() which will look up the right display profile by itself.

Also, use gimp_widget_track_monitor() so you can recreate the transform when the window is moved to another monitor.

For example code, grep for

gimp_widget_get_color_transform gimp_widget_track_monitor

in libgimpwidgets/ and app/widgets/

Regards, --Mitch

My question was if this is a plug-in against GIMP 2.8 (soon obsolete)
or against GIMP git master.

I wouldn't bother do add color management to a GIMP 2.8 plug-in and I have never tried.

I see… G’MIC is already adapted to high bit depth and 2.9 API, so I think it is worth adding proper color management.

Regards, Andrea

_______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org

gimp-developer-list@gnome.org>

List membership: https://mail.gnome.org/mailman/listinfo/gimp-develop <

https://mail.gnome.org/mailman/listinfo/gimp-develop>

er-list
List archives: https://mail.gnome.org/archives/gimp-developer-list <

https://mail.gnome.org/archives/gimp-developer-list> _______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org List membership: https://mail.gnome.org/mailman/listinfo/gimp- developer-list
List archives: https://mail.gnome.org/archives/gimp-developer-list

Carmelo DrRaw
2016-09-07 20:33:36 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

On 07 Sep 2016, at 22:28, C R wrote:

This is fantastic! I could see this become my preferred way to use GIMP. G'MIC works like a charm, can't make it break. Used a 2000x2000 test image, and it just flies!

At this point, the performances of the AppImage should be very close, if not equivalent, to the standard GIMP.

Well done, and thanks!

You are welcome!

-C

On Tue, Sep 6, 2016 at 7:13 PM, Carmelo DrRaw > wrote: Thanks, it worked!!!

The only part which is still missing is the tracking of monitor changes.

I have prepared a special GIMP AppImage with the patched gmic plug-in, if anyone is interested to test it and give some feedback: https://www.dropbox.com/s/xfo6okeqhx4kv5u/gimp-2.9.5-20160906.glibc2.15-x86_64.AppImage?dl=0

Regards, Andrea

On 06 Sep 2016, at 18:35, Michael Natterer > wrote:

On Tue, 2016-09-06 at 16:47 +0200, Carmelo DrRaw wrote:

On 06 Sep 2016, at 16:41, Michael Natterer > wrote:

On Tue, 2016-09-06 at 16:30 +0200, Carmelo DrRaw wrote:

In GIMP git master, you would say

gimp_preview_area_set_color_config (gimp_preview_get_area (preview),
gimp_get_color_configuration ());

Thanks! However, I assume that the ICC conversion is done in this case using 8-bits precision, right?

I would like to take advantage of the fact that G’MIC handles floating-point precision, by doing the ICC conversion before the conversion to 8-bits…

Moreover, this API only makes sure an assumed-to-be-sRGB image is displayed correctly in 8 bit.

You can omit this call, and feed color-corrected pixels to the preview directly, look at the GimpColorTransform API in libgimpcolor, which is a simple wrapper around lcms (which you don't need to use at all).

For the image profile, use gimp_image_get_effective_color_profile(),

for getting the transform, best use gimp_widget_get_color_transform() which will look up the right display profile by itself.

Also, use gimp_widget_track_monitor() so you can recreate the transform when the window is moved to another monitor.

For example code, grep for

gimp_widget_get_color_transform gimp_widget_track_monitor

in libgimpwidgets/ and app/widgets/

Regards, --Mitch

My question was if this is a plug-in against GIMP 2.8 (soon obsolete)
or against GIMP git master.

I wouldn't bother do add color management to a GIMP 2.8 plug-in and I have never tried.

I see… G’MIC is already adapted to high bit depth and 2.9 API, so I think it is worth adding proper color management.

Regards, Andrea

_______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org > List membership: https://mail.gnome.org/mailman/listinfo/gimp-develop > er-list
List archives: https://mail.gnome.org/archives/gimp-developer-list >

_______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list List archives: https://mail.gnome.org/archives/gimp-developer-list

C R
2016-09-08 07:01:14 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

Indeed. I'm finding the speed to be roughly the same as I'm used to with the GIMP ppa.

Out of curiosity, is it possible to package a different set of GIMP defaults with an AppImage?
For example, say I wanted to:

1. Set NoHalo as the default interpolation mode for all transformations 2. Set the preview opacity to 75% during all transformations 3. Map (or remap) hotkeys

Is there a way to do this in an AppImage?

Thanks!

-C

On Wed, Sep 7, 2016 at 9:33 PM, Carmelo DrRaw wrote:

On 07 Sep 2016, at 22:28, C R wrote:

This is fantastic! I could see this become my preferred way to use GIMP. G'MIC works like a charm, can't make it break. Used a 2000x2000 test image, and it just flies!

At this point, the performances of the AppImage should be very close, if not equivalent, to the standard GIMP.

Well done, and thanks!

You are welcome!

-C

On Tue, Sep 6, 2016 at 7:13 PM, Carmelo DrRaw wrote:

Thanks, it worked!!!

The only part which is still missing is the tracking of monitor changes.

I have prepared a special GIMP AppImage with the patched gmic plug-in, if anyone is interested to test it and give some feedback: https://www.dropbox.com/s/xfo6okeqhx4kv5u/gimp-2. 9.5-20160906.glibc2.15-x86_64.AppImage?dl=0

Regards, Andrea

On 06 Sep 2016, at 18:35, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:47 +0200, Carmelo DrRaw wrote:

On 06 Sep 2016, at 16:41, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:30 +0200, Carmelo DrRaw wrote:

In GIMP git master, you would say

gimp_preview_area_set_color_config (gimp_preview_get_area (preview),
gimp_get_color_configuration ());

Thanks! However, I assume that the ICC conversion is done in this case using 8-bits precision, right?

I would like to take advantage of the fact that G’MIC handles floating-point precision, by doing the ICC conversion before the conversion to 8-bits…

Moreover, this API only makes sure an assumed-to-be-sRGB image is displayed correctly in 8 bit.

You can omit this call, and feed color-corrected pixels to the preview directly, look at the GimpColorTransform API in libgimpcolor, which is a simple wrapper around lcms (which you don't need to use at all).

For the image profile, use gimp_image_get_effective_color_profile(),

for getting the transform, best use gimp_widget_get_color_transform() which will look up the right display profile by itself.

Also, use gimp_widget_track_monitor() so you can recreate the transform when the window is moved to another monitor.

For example code, grep for

gimp_widget_get_color_transform gimp_widget_track_monitor

in libgimpwidgets/ and app/widgets/

Regards, --Mitch

My question was if this is a plug-in against GIMP 2.8 (soon obsolete)
or against GIMP git master.

I wouldn't bother do add color management to a GIMP 2.8 plug-in and I have never tried.

I see… G’MIC is already adapted to high bit depth and 2.9 API, so I think it is worth adding proper color management.

Regards, Andrea

_______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org

list@gnome.org>

List membership: https://mail.gnome.org/mailman/listinfo/gimp-develop

er-list
List archives: https://mail.gnome.org/archives/gimp-developer-list <

https://mail.gnome.org/archives/gimp-developer-list> _______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org List membership: https://mail.gnome.org/mailman/listinfo/ gimp-developer-list
List archives: https://mail.gnome.org/archives/gimp-developer-list

Carmelo DrRaw
2016-09-08 07:43:49 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

On 08 Sep 2016, at 09:01, C R wrote:

Indeed. I'm finding the speed to be roughly the same as I'm used to with the GIMP ppa.

Out of curiosity, is it possible to package a different set of GIMP defaults with an AppImage? For example, say I wanted to:

1. Set NoHalo as the default interpolation mode for all transformations 2. Set the preview opacity to 75% during all transformations 3. Map (or remap) hotkeys

Is there a way to do this in an AppImage?

There might be a way to do that, but I would be very reluctant to do so, simply because each person has its own preferences…

But you can easily copy your GIMP preferences over to the appimage, like this:

cp -a $HOME/.config/GIMP/2.9 $HOME/.config/GIMP-AppImage/ rm -f $HOME/.config/GIMP-AppImage/pluginrc

Best, A

Thanks!

-C

On Wed, Sep 7, 2016 at 9:33 PM, Carmelo DrRaw > wrote:

On 07 Sep 2016, at 22:28, C R > wrote:

This is fantastic! I could see this become my preferred way to use GIMP. G'MIC works like a charm, can't make it break. Used a 2000x2000 test image, and it just flies!

At this point, the performances of the AppImage should be very close, if not equivalent, to the standard GIMP.

Well done, and thanks!

You are welcome!

-C

On Tue, Sep 6, 2016 at 7:13 PM, Carmelo DrRaw > wrote: Thanks, it worked!!!

The only part which is still missing is the tracking of monitor changes.

I have prepared a special GIMP AppImage with the patched gmic plug-in, if anyone is interested to test it and give some feedback: https://www.dropbox.com/s/xfo6okeqhx4kv5u/gimp-2.9.5-20160906.glibc2.15-x86_64.AppImage?dl=0

Regards, Andrea

On 06 Sep 2016, at 18:35, Michael Natterer > wrote:

On Tue, 2016-09-06 at 16:47 +0200, Carmelo DrRaw wrote:

On 06 Sep 2016, at 16:41, Michael Natterer > wrote:

On Tue, 2016-09-06 at 16:30 +0200, Carmelo DrRaw wrote:

In GIMP git master, you would say

gimp_preview_area_set_color_config (gimp_preview_get_area (preview),
gimp_get_color_configuration ());

Thanks! However, I assume that the ICC conversion is done in this case using 8-bits precision, right?

I would like to take advantage of the fact that G’MIC handles floating-point precision, by doing the ICC conversion before the conversion to 8-bits…

Moreover, this API only makes sure an assumed-to-be-sRGB image is displayed correctly in 8 bit.

You can omit this call, and feed color-corrected pixels to the preview directly, look at the GimpColorTransform API in libgimpcolor, which is a simple wrapper around lcms (which you don't need to use at all).

For the image profile, use gimp_image_get_effective_color_profile(),

for getting the transform, best use gimp_widget_get_color_transform() which will look up the right display profile by itself.

Also, use gimp_widget_track_monitor() so you can recreate the transform when the window is moved to another monitor.

For example code, grep for

gimp_widget_get_color_transform gimp_widget_track_monitor

in libgimpwidgets/ and app/widgets/

Regards, --Mitch

My question was if this is a plug-in against GIMP 2.8 (soon obsolete)
or against GIMP git master.

I wouldn't bother do add color management to a GIMP 2.8 plug-in and I have never tried.

I see… G’MIC is already adapted to high bit depth and 2.9 API, so I think it is worth adding proper color management.

Regards, Andrea

_______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org > List membership: https://mail.gnome.org/mailman/listinfo/gimp-develop > er-list
List archives: https://mail.gnome.org/archives/gimp-developer-list >

_______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list List archives: https://mail.gnome.org/archives/gimp-developer-list

C R
2016-09-08 08:07:05 UTC (over 7 years ago)

How to retrieve the monitor profile from inside a plug-in

I was thinking for my own purposes, but it might be a useful way to let people test different configurations without having to change the defaults they are used to. That's one thing I love about the AppImage, is it can happily live right along side my installed ppa, and I have two versions of GIMP, one that lets me assist others, and another tweaked to my preferences.

Also, remember how popular GIMPshop was for a while? It was mainly just a ver of GIMP with re-mapped hotkeys.
I still hear people asking for it, and since that project is dead, it has become a bit of a hazard...
http://askubuntu.com/questions/821983/how-to-install-gimpshop-on-ubuntu-16-04/821985#821985

A better option would be to have an AppImage with remapped hotkeys. I mean, it's still not good, but better than people trying to install untrustworthy tarballs with adware.

In the near future, I want to set up a website dedicated to sharing and revising workflows in GIMP and other FLOSS programs. I'd like to make a game of seeing how fast things can be done for various workflows and revise mine, and share. It will be easier to identify workflow bottlenecks, so the ones that are common between different tasks can be addressed, plans drawn up, and submitted along with workflow statistics to GIMP devs for consideration. I believe this would be much more useful than simply complaining that one thing affects one workflow, and offering half, or bad solutions to the problem.

It would be neat to let people try out new configs based on the current-fastest setup without moving a lot of files around, and leaves devs free to attend to more important things than hotkey preferences.

Thanks again for the info. :) -C

On Thu, Sep 8, 2016 at 8:43 AM, Carmelo DrRaw wrote:

On 08 Sep 2016, at 09:01, C R wrote:

Indeed. I'm finding the speed to be roughly the same as I'm used to with the GIMP ppa.

Out of curiosity, is it possible to package a different set of GIMP defaults with an AppImage?
For example, say I wanted to:

1. Set NoHalo as the default interpolation mode for all transformations 2. Set the preview opacity to 75% during all transformations 3. Map (or remap) hotkeys

Is there a way to do this in an AppImage?

There might be a way to do that, but I would be very reluctant to do so, simply because each person has its own preferences…

But you can easily copy your GIMP preferences over to the appimage, like this:

cp -a $HOME/.config/GIMP/2.9 $HOME/.config/GIMP-AppImage/ rm -f $HOME/.config/GIMP-AppImage/pluginrc

Best, A

Thanks!

-C

On Wed, Sep 7, 2016 at 9:33 PM, Carmelo DrRaw wrote:

On 07 Sep 2016, at 22:28, C R wrote:

This is fantastic! I could see this become my preferred way to use GIMP. G'MIC works like a charm, can't make it break. Used a 2000x2000 test image, and it just flies!

At this point, the performances of the AppImage should be very close, if not equivalent, to the standard GIMP.

Well done, and thanks!

You are welcome!

-C

On Tue, Sep 6, 2016 at 7:13 PM, Carmelo DrRaw wrote:

Thanks, it worked!!!

The only part which is still missing is the tracking of monitor changes.

I have prepared a special GIMP AppImage with the patched gmic plug-in, if anyone is interested to test it and give some feedback: https://www.dropbox.com/s/xfo6okeqhx4kv5u/gimp-2.9 .5-20160906.glibc2.15-x86_64.AppImage?dl=0

Regards, Andrea

On 06 Sep 2016, at 18:35, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:47 +0200, Carmelo DrRaw wrote:

On 06 Sep 2016, at 16:41, Michael Natterer wrote:

On Tue, 2016-09-06 at 16:30 +0200, Carmelo DrRaw wrote:

In GIMP git master, you would say

gimp_preview_area_set_color_config (gimp_preview_get_area (preview),
gimp_get_color_configuration ());

Thanks! However, I assume that the ICC conversion is done in this case using 8-bits precision, right?

I would like to take advantage of the fact that G’MIC handles floating-point precision, by doing the ICC conversion before the conversion to 8-bits…

Moreover, this API only makes sure an assumed-to-be-sRGB image is displayed correctly in 8 bit.

You can omit this call, and feed color-corrected pixels to the preview directly, look at the GimpColorTransform API in libgimpcolor, which is a simple wrapper around lcms (which you don't need to use at all).

For the image profile, use gimp_image_get_effective_color_profile(),

for getting the transform, best use gimp_widget_get_color_transform() which will look up the right display profile by itself.

Also, use gimp_widget_track_monitor() so you can recreate the transform when the window is moved to another monitor.

For example code, grep for

gimp_widget_get_color_transform gimp_widget_track_monitor

in libgimpwidgets/ and app/widgets/

Regards, --Mitch

My question was if this is a plug-in against GIMP 2.8 (soon obsolete)
or against GIMP git master.

I wouldn't bother do add color management to a GIMP 2.8 plug-in and I have never tried.

I see… G’MIC is already adapted to high bit depth and 2.9 API, so I think it is worth adding proper color management.

Regards, Andrea

_______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org

gimp-developer-list@gnome.org>

List membership: https://mail.gnome.org/mailman/listinfo/gimp-develop

er-list
List archives: https://mail.gnome.org/archives/gimp-developer-list


_______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org List membership: https://mail.gnome.org/mailman/listinfo/gimp- developer-list
List archives: https://mail.gnome.org/archives/gimp-developer-list