• strict warning: Non-static method view::load() should not be called statically in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/views.module on line 879.
  • strict warning: Declaration of views_attach_plugin_display_node_content::options_submit() should be compatible with views_plugin_display::options_submit(&$form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views_attach/views_attach_plugin_display_node_content.inc on line 248.
  • strict warning: Declaration of content_handler_field::options() should be compatible with views_object::options() in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/cck/includes/views/handlers/content_handler_field.inc on line 208.
  • strict warning: Declaration of views_handler_argument::init() should be compatible with views_handler::init(&$view, $options) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/handlers/views_handler_argument.inc on line 745.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/handlers/views_handler_filter.inc on line 589.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/handlers/views_handler_filter.inc on line 589.
  • strict warning: Declaration of views_handler_filter_node_status::operator_form() should be compatible with views_handler_filter::operator_form(&$form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/modules/node/views_handler_filter_node_status.inc on line 14.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/plugins/views_plugin_row.inc on line 135.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /www/htdocs/w00b6fc7/drupal-6.15/sites/all/modules/views/plugins/views_plugin_row.inc on line 135.

Adaptive saturation curve for LabCurves

Hi folks,

finally here is the first update for LabCurves.

The main new feature is a saturation curve, which could be used in an absolute or adaptive way. You can change the saturation of certain colors or of certain luminosities. Furthermore it is now possible to have a linear curve which helps changing only the saturation of some colors. However, for the other curves this will not be very important. You can change these things in the context menues of the corresponding curve windows. Finally, there are several internal changes like the switch to lcms 2 and several improvements for multicore systems, on which it should be much faster now (depending on the number of cores).


However, because of lcms 2 I'm not able to share linux binaries at the moment, since lcms 2 is not yet included in most distributions. Statically linking would be a way to have binaries again, but I don't know how to do this, so please help me with it.

More about LabCurves here.

greets mike


LabCurves work well in Ubuntu 10.4 with lcms2

Hi there,

after I get all dependencies (everything was in repository), I downloaded lcms-2 from Sourceforge (http://sourceforge.net/projects/lcms/files/lcms/2.0/lcms2-2.0a.tar.gz/do...) and I've compiled lcms2 and LabCurves. After I put the plugin in GIMP I observed that the plugin is not functional.

Because I do not changed the lcms2 prefix, it was installed by default in /usr/local/lib not in /usr/lib but after I create the simbolic link (sudo ln -s /usr/local/lib/liblcms2.so.2.0.0 /usr/lib/liblcms2.so.2), LabCurves start to work like a charm.

Great plugin, thanks
P.S. - it's just my impression or I see some speed improvements over the previous version ?

Hi Nemes,nice to hear that

Hi Nemes,

nice to hear that you like it. You could have installed lcms2 with "./configure --prefix=/usr" to avoid the symlink, since it is then installed in /usr/lib.

Yes, it should be faster since I parallelized parts of the processing and lcms2 claims also to be faster as lcms1. 

Have fun with it, greets mike 

Can't compile on Debian Sid

I'm looking forward to giving this plug-in a go, but so far I've had no luck trying to compile it. I have been trying qmake, qmake-qt3, and qmake-qt3 and then make and then I get complaints about QMessageBox:

/usr/share/qt3/bin/uic ../Sources/dlMainWindow.ui -o ../Objects/dlMainWindow.h
ccache /usr/bin/g++ -c -pipe -g -Wall -W -O2 -O3 -fopenmp -ffast-math -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I/usr/include/GraphicsMagick -I/usr/include/qt3 -I../Objects/ -I../Sources -I../Objects/ -o ../Objects/dlCurve.o ../Sources/dlCurve.cpp
../Sources/dlCurve.cpp:24:23: error: QMessageBox: No such file or directory
make[1]: *** [../Objects/dlCurve.o] Error 1
make[1]: Leaving directory `/home/howard_xxx/LabCurves/LabCurvesProject'
make: *** [sub-LabCurvesProject] Error 2

Not sure if I am doing something wrong myself, or if it is something Debian specific. Help anyone?


Hi Howard,you need the libs

Hi Howard,

you need the libs and qmake for QT4. Please start from a clean directory and make sure that you use QT4 qmake ... Hope this works.

greets mike

Adding color point information to the plugin


This is a great plugin for gimp as it makes possible to use LAB capabilities in a very easy way.

The only limitation I can think of is that it does not provide any information about the "color coordinates" of the points of the image or the curves. This information is provided by the pointer window in gimp and it is very useful in order to be able to find the highlights or shadows of the images, or the specific color you are interested in. It is very important to have this in order to be able to create more precise curves that target specific problems with the image.

Adding the color picker feature currently presented in gimp standard curves plug-in would be another big bonus.

Do you think that this functionality could be added in a future version?

Thank you very much for this excellent tool!!

Hi,glad you like this tool.


glad you like this tool. However, I work on it always with dlRaw in mind, since for me it is just a sandbox to simplify parts of the dlRaw development. And your proposal, although it might be helpful on some images, doesn't fit the internal processing of dlRaw, at least not with quite some additional processing or caching. So in short, I don't plan to add this.

But, and here is the good news, it's open source, so you may go ahead and add this feature. It is for sure not too hard and the additional processing or caching is not so much compared to dlRaw....  

greets mike

Hi,it is a pity that the


it is a pity that the proposal does not fit the internal processing of dlraw as the existing curves functionality is one of the most advanced currently available and having extra information would be the only missing bit.

What I do not understand is why you think that this would need extra processing and caching. Of course, it is clear that some logic should be added to extract the color coordinates from the pointer, but the only modification to the images would be through the addition of points in the curve. Maybe I have understood you incorrectly.

Anyway, I can understand that you do not consider this an important functionality to implement. Unfortunately, I do not have the needed skills to implement it, so I will use the tool as it is now, that is more than good.

Thanks again for this marvellous tool.


Well, let me try to explain

Well, let me try to explain the problem. It's not hard to get the point, on the image, but it costs to get the "current" color there, at least for dlRaw. (Since you don't want to have the final color, you want the color at that pixel at the corresponding time in the processing pipe.)

DlRaw has at the moment over 50 filters and 10 curves, so between two caching steps there are several filters. So to get the right color at a point, one has to recalculate starting from a cache to the curve one wants to work on. Since many filters (like dynamic range compression or texture contrast) need the values in the neighbourhood of that pixel it is not enough to calculate just that single pixel. So, depending on the chosen filters it will take quite some time to get the color to set the point in the curve...

However, when starting with "local filters" I would rather go for a flexible framework, which allows automatic masks depending on the point chosen and the image structure to have the filter applied just on the masked part. But this will be more work and is not high priority.

With LabCurves it's a lot simpler, since curves do not depend on the neighbourhood. I started programming just 16 months back, starting from nearly nothing... It's not hard to learn it, but if you never start...

greets mike

On Mandriva 2010


Thank you for your work !!

To use this new version on Mandriva 2010.0 64 bits, I compiled Lcms 2. Lcms was installed in /usr/local/lib/, so I just create a symbolic link like that :
# ln -s /usr/local/lib/liblcms2.so.2 /usr/lib64/liblcms2.so.2
After, it's ok to use the new Lab curves...


Post new comment

The content of this field is kept private and will not be shown publicly.