我正在尝试将现有图像(在我的应用程序的按钮内)保存到 byte[],然后将其保存到 SQLite 数据库。我知道如何使用FileOpenPicker
加载和转换为IRandomAccessStream
,我知道如何保存到数据库,但我不知道如何在 Metro 应用程序/Windows UI 中将现有图像转换为字节数组。
我进行了很多搜索,但主要是使用 FileOpenPicker 或使用似乎不适用于 Metro 应用程序的内存流的示例。
谢谢你。
我正在尝试将现有图像(在我的应用程序的按钮内)保存到 byte[],然后将其保存到 SQLite 数据库。我知道如何使用FileOpenPicker
加载和转换为IRandomAccessStream
,我知道如何保存到数据库,但我不知道如何在 Metro 应用程序/Windows UI 中将现有图像转换为字节数组。
我进行了很多搜索,但主要是使用 FileOpenPicker 或使用似乎不适用于 Metro 应用程序的内存流的示例。
谢谢你。
您可以使用Datareader
as
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/
引用..
基本上,您需要将图像加载到 WriteableBitmap 中,然后通过调用 PixelBuffer.AsStream() 访问其像素缓冲区。