ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-04-20 12:31:06  阅读:177  来源: 互联网

标签:picker 裁剪 parameters UWP Add var await 图片


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有