如何在Property.Settings.Default中存储图像?

时间:2015-08-12 09:31:54

标签: c# .net image settings.settings

如何在Property.Settings.Default

中存储图像

我应该使用什么数据类型?

3 个答案:

答案 0 :(得分:2)

正如我之前已经评论过的那样:使用资源更好。 以下是使用嵌入式资源的指南:

转到“资源”选项卡而不是“设置”选项卡,然后从中添加图像。如果您还没有创建默认资源文件,请单击该链接,将为您创建一个。 Embed 选择“图像”作为类型 资源(来自上面的下拉列表)然后添加现有资源(来自相邻的下拉列表)。

您可以访问该资源 使用以下代码从您的程序中获取(静态类Properties.Resource):

Bitmap image = Properties.Resources.MyJPGImage;

您还可以通过其他程序集的反射来访问资源。尝试在Microsoft 处查看完整示例(包括图像)

答案 1 :(得分:0)

试试这个

var base64 = string.Empty;
using (MemoryStream ms = new MemoryStream())
{
   yourImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
   base64 = Convert.ToBase64String(ms.ToArray());
}

从设置文件创建字符串变量,例如。 MyImage

Properties.Settings.Default.MyImage = base64;
Properties.Settings.Default.Save();

编辑:

pictureBox1.Image = GetImage(Properties.Settings.Default.MyImage);
public Image GetImage(string value)
{        
    byte[] bytes = Convert.FromBase64String(value);
    Image image;
    using (MemoryStream ms = new MemoryStream(bytes))
    {
        image = Image.FromStream(ms);
    }
    return image;
}

答案 2 :(得分:0)

默认情况下,您无法执行此操作(编辑器不允许您选择byte[]作为数据类型)。您可以从设置文件编辑XML以包含字节数组。您可以在最后再次序列化和反序列化。

如果要在设置文件中设置默认值,则需要提供base64编码的字符串。

这将是设置文件中设置所需的格式:

<Setting Name="Setting" Type="System.Byte[]" mimetype="application/x-microsoft.net.object.bytearray.base64" Scope="User">
  <Value Profile="(Default)">
    iVBOR...
  </Value>
</Setting>

如果您真的需要,请仅使用此选项。如果可能,只需在设置中保存文件的路径,并将文件外部保存在除设置之外的数据文件夹中。