public static WriteableBitmap MakeSmallerCopy(this WriteableBitmap original, int maxDimension)
 {
     var ratio = 0.0;
     if (original.PixelHeight > original.PixelWidth)
     {
         ratio = ((double)original.PixelHeight) / maxDimension;
     }
     else
     {
         ratio = ((double)original.PixelWidth) / maxDimension;
     }
     if (ratio > 1.0)
         ratio = 1.0;
     var newWidth = (int)Math.Floor(((double)original.PixelWidth) / ratio);
     var newHeight = (int)Math.Floor(((double)original.PixelHeight) / ratio);
     var toReturn = new WriteableBitmap(newWidth, newHeight);
     toReturn.Blit(toReturn.BoundingRect(), original, original.BoundingRect());
     return toReturn;
 }