其他分享
首页 > 其他分享> > UWP 浏览本地图片及对图片的裁剪

UWP 浏览本地图片及对图片的裁剪

作者:互联网

UWP 浏览本地图片及对图片的裁剪

     private async void btnAddPhoto_Click(object sender, RoutedEventArgs e)
        {
            //创建和自定义 FileOpenPicker
            var picker = new Windows.Storage.Pickers.FileOpenPicker();
            picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail; //可通过使用图片缩略图创建丰富的视觉显示,以显示文件选取器中的文件
            picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
            picker.FileTypeFilter.Add(".jpg");
            picker.FileTypeFilter.Add(".jpeg");
            picker.FileTypeFilter.Add(".png");
            picker.FileTypeFilter.Add(".gif");

            //选取单个文件
            Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

            //文件处理
            if (file != null)
            {

                try
                {
                    // 载入已保存的裁剪后图片
                    var stream = await file.OpenReadAsync();
                    var bitmap = new BitmapImage();
                    await bitmap.SetSourceAsync(stream);

                    // 显示
                    imgHead.Source = bitmap;
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message + ex.StackTrace);
                }
                //或者用下面的方法实现了裁剪功能
                //    var inputFile = SharedStorageAccessManager.AddFile(file);
                //    var destination = await ApplicationData.Current.LocalFolder.CreateFileAsync("Cropped.jpg", CreationCollisionOption.ReplaceExisting);//在应用文件夹中建立文件用来存储裁剪后的图像
                //    var destinationFile = SharedStorageAccessManager.AddFile(destination);
                //    var options = new LauncherOptions();
                //    options.TargetApplicationPackageFamilyName = "Microsoft.Windows.Photos_8wekyb3d8bbwe";

                //    //待会要传入的参数
                //    var parameters = new ValueSet();
                //    parameters.Add("InputToken", inputFile);                //输入文件
                //    parameters.Add("DestinationToken", destinationFile);    //输出文件
                //    parameters.Add("ShowCamera", false);                    //它允许我们显示一个按钮,以允许用户采取当场图象(但是好像并没有什么卵用)
                //    parameters.Add("EllipticalCrop", true);                 //截图区域显示为圆(最后截出来还是方形)
                //    parameters.Add("CropWidthPixals", 500);
                //    parameters.Add("CropHeightPixals", 600);

                //    //调用系统自带截图并返回结果
                //    var result = await Launcher.LaunchUriForResultsAsync(new Uri("microsoft.windows.photos.crop:"), options, parameters);

                //    //按理说下面这个判断应该没问题呀,但是如果裁剪界面点了取消的话后面会出现异常,所以后面我加了try catch
                //    if (result.Status == LaunchUriStatus.Success && result.Result != null)
                //    {
                //        //对裁剪后图像的下一步处理
                //        try
                //        {
                //            // 载入已保存的裁剪后图片
                //            var stream = await destination.OpenReadAsync();
                //            var bitmap = new BitmapImage();
                //            await bitmap.SetSourceAsync(stream);

                //            // 显示
                //            imgHead.Source = bitmap;
                //        }
                //        catch (Exception ex)
                //        {
                //            Debug.WriteLine(ex.Message + ex.StackTrace);
                //        }
                //    }

            }



        }
    
    

  

标签:picker,裁剪,parameters,UWP,Add,var,await,图片
来源: https://www.cnblogs.com/wgscd/p/16169333.html