2016-07-01 1 views
0

В настоящее время я работаю над 2D-игровым движком, до сих пор я добавил функцию загрузки и удаления изображений, но сейчас я хочу их сохранить это словарь:C# - Как сохранить изображения из словаря <string, images> в папку

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

строка это имя, например, когда человек хочет, чтобы добавить изображение они нажимают на кнопку, которая говорит, выберите изображение затем pitcurebox будет установлен в качестве изображения, которое было открыт, тогда есть текстовое поле, когда они нажимают кнопку, которая говорит «Добавить изображение», она будет делать это images.Add (textBox1.Text, pictureBox1.Image) Затем я хочу сохранить все изображения, добавленные в папку

Для этого я просмотрел по всему Интернету, но у меня нет ответа, и я действительно застрял, спасибо заранее.

+0

В каком формат, вы хотите сохранить его? Сохранить все изображения в виде файлов в папке? –

+0

Только изображения? как Jpeg, png и т. д.? или всю информационную строку + изображение и как вы собираетесь использовать сохраненные изображения/данные снова? Пожалуйста, уточните, чтобы получить конкретный ответ. –

+0

Строка - это имя, например, когда человек хочет добавить изображение, которое они нажимают на кнопку, в которой говорится о выборе изображения, тогда ящик будет установлен как изображение, которое было открыто, тогда есть текстовое поле, когда они нажимают кнопку, которая говорит Add Image, он сделает это 'images.Add (textBox1.Text, pictureBox1.Image)' Затем я хочу сохранить все изображения, добавленные в папку –

ответ

2

Image класс имеет метод Save. Таким образом, вы могли бы сделать что-то вроде этого:

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

UPDATE

Если вы хотели бы использовать строку в словаре, как имя файла изменить приведенный выше код немного:

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); 
} 
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 
    } 
}