Some interesting work has been done with a new kit called the ImageKit. It's inspired by Apple's Core Image API, and allows you to draw images using the GPU and OpenGL to do the work for you. You can apply one or more filters to an image and chain them together to achieve various effects. There's a simple filter tester:
that allows you to test simple filters out (using OpenGL's GL Shading Language) and apply them to an image.
Another example shows chaining multiple filters together, the code looks something like this:
IKImageContext ic(this); IKImage img; img.initFromFile( "logo.png" ); hueAdj = new HueAdjust(); blur = new GaussianBlur(); hueAdj->setInputImage( &img ); hueAdj->setHueVal( 1.5 ); blur->setInputImage( hueAdj->getOutputImage() ); blur->blurAmount = 2; ic.draw( 300, 10, blur->getOutputImage() );The results:
The cool thing is that this is all running on the GPU! This can be found in the bluesky directory here: bluesky/ImageKit. There's still some more work to be done before pushing this to the main VCF src tree, but it's almost ready.