C# - 如何将字典<string,images =“”>中的图像保存到文件夹中

时间:2016-07-01 07:14:50

标签: c# dictionary game-engine

我目前正在开发2D游戏引擎,到目前为止我已经添加了一个加载和删除图像的功能,但现在我想保存它们,这是字典:

public Dictionary<string, Image> images = new Dictionary<string, Image>();

字符串是名称,例如当人想要添加图像时,他们点击一个按钮,然后选择图像然后将一个pitcurebox设置为打开的图像,然后有一个文本框,当他们点击一个按钮说,添加图像,它将执行此图像。添加(textBox1.Text,pictureBox1.Image)然后我想保存添加到文件夹的所有图像

我已经在互联网上看了这个,但是没有人对我有答案,而且我提前感谢你了。

2 个答案:

答案 0 :(得分:2)

Image类具有Save方法。所以你可以这样做:

foreach (var imgX in images.Select(kvp => kvp.Value))
{
    imgX.Save("figure_a_file_path_and_name", ImageFormat.Jpeg);
}

更新

如果您想在字典中使用字符串作为文件名,请稍微改变上面的代码:

var folder = "figure_the_folder_path\\";

foreach (var entry in images)
{
    var destinationFile = string.Concat(folder, entry.Key); 
    var img = entry.Value;
    img.Save(destinationFile, ImageFormat.Jpeg);
}

答案 1 :(得分:0)

使用BinaryFormatter将图像保存到单个文件夹,将字典序列化/反序列化为如下文件:

public void Save(string filename)
{
    var bin_formater = new BinaryFormatter();
    using (var stream = File.Create(filename))
    {
        bin_formater.Serialize(stream, images); //images is your dictionary
    }
}