/// <summary>
 /// Creates a new filtered WriteableBitmap.
 /// </summary>
 /// <param name="bmp">The WriteableBitmap.</param>
 /// <param name="kernel">The kernel used for convolution.</param>
 /// <returns>A new WriteableBitmap that is a filtered version of the input.</returns>
 public static WriteableBitmap Convolute(this WriteableBitmap bmp, int[,] kernel)
 {
    var kernelFactorSum = 0;
    foreach (var b in kernel)
    {
       kernelFactorSum += b;
    }
    return bmp.Convolute(kernel, kernelFactorSum, 0);
 }
 public static void GaussianBlurTiny(this WriteableBitmap bmp)
 {
     bmp.Convolute(_tinyGaussianBlurKernel, 3, 3);
 }
 public static void GaussianBlur(this WriteableBitmap bmp)
 {
     bmp.Convolute(_gaussianBlurKernel, 5, 5);
 }