【问题标题】:Converting .dat File to Image File in C#在 C# 中将 .dat 文件转换为图像文件
【发布时间】:2022-01-22 09:59:31
【问题描述】:

我正在尝试通过此代码从C:\ProgramData\Microsoft\User Account Pictures\{UserName}.dat 获取 Windows 用户个人资料图片:

public static Image GetUserimage()
{
    if (File.Exists(@"C:\ProgramData\Microsoft\User Account Pictures\" + Environment.UserName + ".dat"))
    {
        return Image.FromFile(@"C:\ProgramData\Microsoft\User Account Pictures\" + Environment.UserName + ".dat");
    }
    else
    {
        return Cheat.Properties.Resource1.Image1;
    }
}

但是当我尝试调用它pictureBox1.Image = GetUserimage();时出现这个错误:

System.OutOfMemoryException: 'Out of memory.'

我认为原因是.dat 不是图像文件来用作图像。

所以我的问题是如何将 .dat 文件转换为图像格式以将其用作图像 VAR?

【问题讨论】:

    标签: c# image file converters system.drawing


    【解决方案1】:

    在 Windows 10/11 上,您可以直接通过 WinRT API 获取用户的个人资料。

    API Documentation

    在此处查看示例:UWP samples on GitHub

    【讨论】:

      【解决方案2】:

      System.OutOfMemoryException 通常会在尝试读取带有 System.Drawing 的图像时引发,而该图像实际上并不是一个。

      检查我自己的 Windows 安装,似乎这些不是您要用于用户个人资料图片的文件(在我的情况下它们是空的)。

      我发现了一个可能对您有所帮助的已回答问题:https://stackoverflow.com/a/9149243/7972419

      【讨论】:

        猜你喜欢
        • 2013-07-01
        • 2012-07-15
        • 1970-01-01
        • 2018-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多