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);
// }
// }
}
}
fffffffffffffffff
test red font.

浙公网安备 33010602011771号