Allows definition of a tone curve to apply as a lookup table to the image, the classic curve tool. Click on the curve to add a control point, drag it to where you want. Click on a control point to select it, it turns red. Double-click the selected point to delete it (you can't delete the end points). When you move a control point, the lookup table is applied when you release the mouse button.
If you select a point, you can drag your mouse (or finger on a touchscreen) anywhere in the pane to move it; you don't have to be touching the point directly. You can also double-click anywhere in the curve pane to delete the selected point, holdover behavior from when I was trying to implement a touch interface.
The selected control point can be moved using the mousewheel. Holding down the Ctrl key and rotating the wheel moves the selected point left/right, holding down the Alt key and rotating the wheel moves the selected point up/down.
The individual R, G, and B channels can be selected for manipulation from the drop-down box in the upper left. If you need to manipulate more than one channel, add a curve tool for each channel.
rawproc 0.8 introduces an additional channel selection, "tone". For this selection, the curve is applied using the difference between the computed luminance of the channel and the curve lookup of that luminance. This operation should preserve color saturation that is lost using individual lookups on each channel with "rgb".
The curve pane displays the tone histogram of the input image. Use the histogram pane to regard the effect of the curve.
Note that you can move the endpoints on the top and bottom lines to adjust the black and white point, so you could do that without resorting to the black/white point tool.
You can add as many curve tools to the command list as you desire. Sometimes, doing something like using a curve to adjust contrast doesn't leave enough slope to do any other manipulations; just add another curve tool and go from there.
Note that, while the curve tool works on a 0-255 range, the actual processing is with floating point coordinates, so the precision is appropriate to the floating point image structure.
Properties: See tool.curve.* in Configuration Properties