/// <summary>
 /// Does smoothing using a gaussian blur
 /// </summary>
 /// <param name="Image">Image to manipulate</param>
 /// <param name="Size">Size of the aperture</param>
 /// <returns>The resulting SwiftBitmap</returns>
 public static SwiftBitmap GaussianBlur(this SwiftBitmap Image, int Size = 3)
 {
     Contract.Requires<ArgumentNullException>(Image != null, "Image");
     return Image.BoxBlur(Size).BoxBlur(Size).BoxBlur(Size);
 }
 /// <summary>
 /// Does smoothing using a gaussian blur
 /// </summary>
 /// <param name="Image">Image to manipulate</param>
 /// <param name="FileName">File to save to</param>
 /// <param name="Size">Size of the aperture</param>
 /// <returns>The resulting bitmap</returns>
 public static Bitmap GaussianBlur(this Bitmap Image, int Size = 3, string FileName = "")
 {
     Image.ThrowIfNull("Image");
     ImageFormat FormatUsing = FileName.GetImageFormat();
     using (Bitmap ReturnBitmap = Image.BoxBlur(Size))
     {
         using (Bitmap ReturnBitmap2 = ReturnBitmap.BoxBlur(Size))
         {
             Bitmap ReturnBitmap3 = ReturnBitmap2.BoxBlur(Size);
             if (!string.IsNullOrEmpty(FileName))
                 ReturnBitmap3.Save(FileName, FormatUsing);
             return ReturnBitmap3;
         }
     }
 }
 /// <summary>
 /// Does smoothing using a gaussian blur
 /// </summary>
 /// <param name="Image">Image to manipulate</param>
 /// <param name="FileName">File to save to</param>
 /// <param name="Size">Size of the aperture</param>
 /// <returns>The resulting bitmap</returns>
 public static Bitmap GaussianBlur(this Bitmap Image, int Size = 3, string FileName = "")
 {
     Contract.Requires<ArgumentNullException>(Image != null, "Image");
     ImageFormat FormatUsing = FileName.GetImageFormat();
     using (Bitmap ReturnBitmap = Image.BoxBlur(Size))
     {
         using (Bitmap ReturnBitmap2 = ReturnBitmap.BoxBlur(Size))
         {
             Bitmap ReturnBitmap3 = ReturnBitmap2.BoxBlur(Size);
             if (!string.IsNullOrEmpty(FileName))
                 ReturnBitmap3.Save(FileName, FormatUsing);
             return ReturnBitmap3;
         }
     }
 }