private async void Open_Click(object sender, RoutedEventArgs e) { open.IsChecked = false; Windows.Storage.Pickers.FileOpenPicker openPicker = new Windows.Storage.Pickers.FileOpenPicker(); openPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary; openPicker.FileTypeFilter.Add(".gif"); Windows.Storage.StorageFile file = await openPicker.PickSingleFileAsync(); if (file != null) { Windows.Storage.Streams.IRandomAccessStream stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); using (var inputStream = stream.GetInputStreamAt(0)) { await canvas.InkPresenter.StrokeContainer.LoadAsync(inputStream); } stream.Dispose(); alreadySaved = true; lastFile = file; } }
/// <summary> /// 将文件转换为字节数组 /// </summary> /// <param name="file"></param> /// <returns></returns> public static async Task <byte[]> AsByteArray(this Windows.Storage.StorageFile file) { Windows.Storage.Streams.IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); var reader = new Windows.Storage.Streams.DataReader(fileStream.GetInputStreamAt(0)); await reader.LoadAsync((uint)fileStream.Size); byte[] pixels = new byte[fileStream.Size]; reader.ReadBytes(pixels); return(pixels); }
public static async System.Threading.Tasks.Task <byte[]> ReadBytesFromFileAsync(string fileName) { try { Windows.Storage.StorageFolder tempFolder = await Windows.Storage.StorageFolder.GetFolderFromPathAsync(Options.options.tempFolderPath); Windows.Storage.StorageFile file = await tempFolder.GetFileAsyncServiceAsync(text, apiArgs); // TODO: obsolete to use DataReader? use await Windows.Storage.FileIO.Read...(file); using (Windows.Storage.Streams.IRandomAccessStream stream = await file.OpenReadAsync()) { using (Windows.Storage.Streams.DataReader reader = new Windows.Storage.Streams.DataReader(stream.GetInputStreamAt(0))) { await reader.LoadAsync((uint)stream.Size); byte[] bytes = new byte[stream.Size]; reader.ReadBytes(bytes); return(bytes); } } } catch (Exception ex) { Log.WriteLine(ex.Message); return(null); } }