c# - 如何在应用程序设置中保存图像或文件流? UWP C#

标签 c# image uwp settings filestream

我有一个包含一些 ListViewItems 的 ListView ,每个 ListView 都包含一个 TextBox 和一个图像。

用户可以添加或删除这些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并使用 uri scheme 访问它们.

关于c# - 如何在应用程序设置中保存图像或文件流? UWP C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65506549/

相关文章:

c# - 将Word文档转换为base64字符串C#

c# - 如何使用 System.Text.Json 忽略常量属性的 JSON 序列化?

c# - 如何将 Windows.UI.Composition 动画集成到 UWP MVVM Light 应用程序中

c# - 在 UWP 应用程序(通用应用程序)中呈现电子书(比如 .epub 和 .pdf)

c# - System.IO 相对路径

c# - 想要从字符串中删除双引号

html - 用于 HTML 表格的错误 CSS

iphone - UIImageView 带有大图像。问题

c# - 将文件加载到位图但保持原始文件不变

uwp - 如何使用任意参数从 UWP 启动完全信任(桌面桥)应用程序