Example #1
0
        private async void SaveAs_Click(SplitButton sender, SplitButtonClickEventArgs args)
        {
            FileSavePicker Picker = new FileSavePicker
            {
                SuggestedFileName      = Path.GetFileNameWithoutExtension(OriginFile.Name),
                SuggestedStartLocation = PickerLocationId.Desktop
            };

            Picker.FileTypeChoices.Add($"PNG {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>()
            {
                ".png"
            });
            Picker.FileTypeChoices.Add($"JPEG {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>()
            {
                ".jpg"
            });
            Picker.FileTypeChoices.Add($"BMP {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>()
            {
                ".bmp"
            });
            Picker.FileTypeChoices.Add($"GIF {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>()
            {
                ".gif"
            });
            Picker.FileTypeChoices.Add($"TIFF {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>()
            {
                ".tiff"
            });

            StorageFile File = await Picker.PickSaveFileAsync();

            if (File != null)
            {
                LoadingControl.IsLoading = true;

                using (IRandomAccessStream Stream = await File.OpenAsync(FileAccessMode.ReadWrite))
                {
                    Stream.Size = 0;
                    switch (File.FileType)
                    {
                    case ".png":
                        await Cropper.SaveAsync(Stream, BitmapFileFormat.Png).ConfigureAwait(true);

                        break;

                    case ".jpg":
                    case ".jpeg":
                        await Cropper.SaveAsync(Stream, BitmapFileFormat.Jpeg).ConfigureAwait(true);

                        break;

                    case ".bmp":
                        await Cropper.SaveAsync(Stream, BitmapFileFormat.Bmp).ConfigureAwait(true);

                        break;

                    case ".gif":
                        await Cropper.SaveAsync(Stream, BitmapFileFormat.Gif).ConfigureAwait(true);

                        break;

                    case ".tiff":
                        await Cropper.SaveAsync(Stream, BitmapFileFormat.Tiff).ConfigureAwait(true);

                        break;

                    default:
                        throw new InvalidOperationException("Unsupport image format");
                    }
                }

                await Task.Delay(1000).ConfigureAwait(true);

                LoadingControl.IsLoading = false;

                Frame.GoBack();
            }
        }