0

我正在尝试将现有图像(在我的应用程序的按钮内)保存到 byte[],然后将其保存到 SQLite 数据库。我知道如何使用FileOpenPicker加载和转换为IRandomAccessStream,我知道如何保存到数据库,但我不知道如何在 Metro 应用程序/Windows UI 中将现有图像转换为字节数组。

我进行了很多搜索,但主要是使用 FileOpenPicker 或使用似乎不适用于 Metro 应用程序的内存流的示例。

谢谢你。

4

1 回答 1

0

您可以使用Datareaderas

    var file = await new FileOpenPicker().PickSingleFileAsync();
    var fStream = await file.OpenAsync(FileAccessMode.Read);

    var reader = new DataReader(fStream.GetInputStreamAt(0));
    var bytes = new byte[fStream.Size];
    await reader.LoadAsync((uint)fStream.Size);
    reader.ReadBytes(bytes);

最后,您可以保存bytes到数据库。

此处的另一个示例将 StorageFile 读取到 C# 中的字节数组

添加编辑

WinRT 你需要使用http://writeablebitmapex.codeplex.com/

WinRT 将图像加载到字节数组中

引用..

基本上,您需要将图像加载到 WriteableBitmap 中,然后通过调用 PixelBuffer.AsStream() 访问其像素缓冲区。

于 2013-03-17T16:34:55.733 回答