public static async Task <StorageFile> SaveAsync(this StorageItemThumbnail thumbnail, StorageFolder folder, string name, bool encode = false) { using (var stream = thumbnail.CloneStream()) { var decoder = await BitmapDecoder.CreateAsync(stream); var softwareBitmap = await decoder.GetSoftwareBitmapAsync(); var filename = name + ".png"; if (encode) { filename = WebUtility.UrlEncode(filename); } bool notExists = !await folder.Contains(filename); var file = await folder.CreateFileAsync(filename, CreationCollisionOption.OpenIfExists); if (notExists) { using (var filestream = await file.OpenAsync(FileAccessMode.ReadWrite)) { var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, filestream); encoder.SetSoftwareBitmap(softwareBitmap); await encoder.FlushAsync(); } } return(file); } }