See the question and my original answer on StackOverflow

The best and fastest way is to use pixel shaders (supported starting with WPF 3.5 SP1 I think) . It will require some shader language (HLSL) knowledge, though :-)

Here is a tutorial: How Do I: Create Custom Pixel Shader Effects for WPF

a library on codeplex: Windows Presentation Foundation Pixel Shader Effects Library

an article with .NET 4 information (including Sliverlight support which has it too): SilverShader – Introduction to Silverlight and WPF Pixel Shaders