/// <summary>
/// 选择一张图片,并保存到本地
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void onSelectFile(object sender, RoutedEventArgs e)
{
FileOpenPicker picker = new FileOpenPicker();
// 添加文件类型过滤
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
// 设置初始路径
picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
IRandomAccessStream inputstream = await file.OpenAsync(FileAccessMode.Read);// 只读
Stream input = WindowsRuntimeStreamExtensions.AsStreamForRead(inputstream.GetInputStreamAt(0));
try
{
StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile outputFile = await storageFolder.CreateFileAsync(file.Name, CreationCollisionOption.ReplaceExisting);// 创建文件,同名替换
using (IRandomAccessStream outputStream = await outputFile.OpenAsync(FileAccessMode.ReadWrite))
{
Stream output = WindowsRuntimeStreamExtensions.AsStreamForWrite(outputStream.GetOutputStreamAt(0));
await input.CopyToAsync(output); // 从输入流 写入 输出流
output.Dispose(); // 释放资源
input.Dispose();
}
}
catch (Exception)
{
//
}
}
} /// <summary>
/// 打开长传的图片,并设置为Image的Source
/// </summary>
/// <param name="imageName"></param>
private async void setImage(string imageName)
{
Windows.UI.Xaml.Media.Imaging.BitmapImage bmp =
new Windows.UI.Xaml.Media.Imaging.BitmapImage();
StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile outputFile = await storageFolder.GetFileAsync(imageName);
using (IRandomAccessStream outputStream = await outputFile.OpenAsync(FileAccessMode.ReadWrite))
{
bmp.SetSource(outputStream);
}
this.img.Source = bmp;
}