First I would like to thank you guys for a great job. Really saved me a lot of time.
I'm using the WinRT version of WriteableBitmapEx and there is a real performance issue with GetPixel. I saw that you recommend not using it for multiple pixel manipulation but this method is used in RotateFree. I ran an analysis of my code with your
source and found that >40% of the time it takes to run RotateFree is used by GetPixel.
GetPixel creates a new BitmapContext for each call and it's the dispose if this object that takes >80% of the GetPixel execution time. I wrote Another GetPixel which istead takes the context already created in RotateFree and that dropped the time on the
GetPixel call by almost 90%.
It looks like most of the perfomance hot paths points to dispose of BitmapContext. Eg. 30% of the exec time of Resize is dispose time.
And this is on Windows 8/WinRT.