Win8 从图片库 选择图片,并上传到应用,设着为背景

来源:互联网 发布:unity3d 布料系统demo 编辑:程序博客网 时间:2024/05/16 06:28
 /// <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;        } 


 

原创粉丝点击