<p>i'm currently experimenting using PixelShaders introduced with .net 3.5 sp1 to improve image processing performance. everything is much faster , but til yet i just had effects applied to some elements in my wpf forms, that i actually want to avoid.</p>

<p>we have a bunch of image processing functionality and i'd like to replace some othe the stuff piece by piece with pixel shaders to gain some performance.
is there a way to apply such a pixel shader to an ImageSource without having to display it?</p>

What is generally done in C++ / DirectX to achive this is:
Preparation (done once)
Create render target using CreateRenderTarget
Create off-screen surface using CreateOffscreenPlainSurface
Set render target surface using SetRenderTarget
Create any other input resources needed (Textures, Vertex Buffers ...)
Rendering (done multiple times)
Update input resources (textures, buffers) as needed
Render
Copy the contents of the render target into the off-screen surface via GetRenderTarget
Lock the off-screen surface and read its content on the CPU