All Image Plugins now support 16 bit
With committing the port of the "Perspective Adjustment" plugin on Sunday as the last remaining plugin on the Todo list, now all Image Editor Plugins have been ported to support 16 bit images.
There are 24 plugins in the digikamimageplugins package, and about eight are shipped with digikam core.
We have now accomplished full 16 bit support in all parts of digikam and the image plugins, which will be a major feature of the upcoming 0.9 release.
Read on for some technical background.
Porting is not writing new code, but nevertheless due to the sheer number of plugins, some of them effectively containing multiple effects, this was enough work.
Porting usually involved removing all QImage dependencies and using DImg instead, then the algorithm had to be checked that it supports the extended color value range. Multiply two 16 bit values and you have reached 32 bit and the limits of "int". Where necessary, additional code paths for sixteen bit were added. Often reused code such as reading and writing a color value from memory was moved to the core libs and optimized.
Our new DImg imaging infrastructure had to meet its real world requirements - successfully - and it is pretty mature now.