如何在应用程序设置中保存图像或文件流? UWP C#
How to save an Image or File Stream in application's settings? UWP C#
我有一个包含一些 ListViewItems 的列表视图,每个列表视图都包含一个文本框和一个图像。
用户可以添加或删除这些 ListViewItems,所以我想在每次关闭应用程序时将它们保存在设置中,并在每次打开时加载。
我设法在设置中保存了文本框的文本并加载了它们,但是如何保存和加载图像/图像源/文件流?
当用户在 FileOpenPicker 中选择一个图像时创建图像,然后创建一个位图图像,其中包含到所选图像的文件流,作为 ListViewItem 的图像源。
private async void openFileInputEvent(object sender, RoutedEventArgs e)
{
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
BitmapImage tmpimg = new BitmapImage();
await tmpimg.SetSourceAsync(fileStream);
imglist.Add(tmpimg);
}
}
else
{
var dialog = new MessageDialog("File not chosen", "No chosen Image");
await dialog.ShowAsync();
imglist.Add(new BitmapImage());
}
}
所有 ListViewItems 图像的位图图像存储在位图图像列表 (List<BitmapImage>
) 中,通过选择列表中的最后一项 (imglist[imglist.Count-1]
)
我想将此图像/它们的源/文件流保存并加载到它们的源,有什么办法可以做到吗?
我可以保存图像的路径,但我不能稍后创建一个以该路径为源的图像,它必须是一个文件流。
How to save an Image or File Stream in application's settings? UWP C#
LocalSettings
不支持存储大数据,恐怕你不能直接将BitmapImage存储到LocalSettings
,对于你的场景,我们建议你将图像存储在应用程序的LocalFolder
and access them with uri scheme.
我有一个包含一些 ListViewItems 的列表视图,每个列表视图都包含一个文本框和一个图像。
用户可以添加或删除这些 ListViewItems,所以我想在每次关闭应用程序时将它们保存在设置中,并在每次打开时加载。
我设法在设置中保存了文本框的文本并加载了它们,但是如何保存和加载图像/图像源/文件流?
当用户在 FileOpenPicker 中选择一个图像时创建图像,然后创建一个位图图像,其中包含到所选图像的文件流,作为 ListViewItem 的图像源。
private async void openFileInputEvent(object sender, RoutedEventArgs e)
{
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
BitmapImage tmpimg = new BitmapImage();
await tmpimg.SetSourceAsync(fileStream);
imglist.Add(tmpimg);
}
}
else
{
var dialog = new MessageDialog("File not chosen", "No chosen Image");
await dialog.ShowAsync();
imglist.Add(new BitmapImage());
}
}
所有 ListViewItems 图像的位图图像存储在位图图像列表 (List<BitmapImage>
) 中,通过选择列表中的最后一项 (imglist[imglist.Count-1]
)
我想将此图像/它们的源/文件流保存并加载到它们的源,有什么办法可以做到吗?
我可以保存图像的路径,但我不能稍后创建一个以该路径为源的图像,它必须是一个文件流。
How to save an Image or File Stream in application's settings? UWP C#
LocalSettings
不支持存储大数据,恐怕你不能直接将BitmapImage存储到LocalSettings
,对于你的场景,我们建议你将图像存储在应用程序的LocalFolder
and access them with uri scheme.