Как сохранить изображение в Property.Settings.Default?

Как я могу сохранить изображение в Property.Settings.Default?

Какой тип данных мне следует использовать?

3 ответа

Как я уже говорил ранее: лучше использовать ресурсы. Вот руководство по использованию встроенных ресурсов:

Перейдите на вкладку "Ресурсы" вместо вкладки "Настройки" и добавьте изображение оттуда. Если у вас еще не создан файл ресурсов по умолчанию, нажмите на ссылку, и она будет создана для вас. встраивать Выберите "Изображения" для типа ресурса (из раскрывающегося списка выше), а затем добавьте существующий ресурс (из соседнего раскрывающегося списка).

Вы можете получить доступ к ресурсу из вашей программы, используя следующий код (статический класс Properties.Resource):

Bitmap image = Properties.Resources.MyJPGImage;

Вы также можете получить доступ к ресурсам через отражения от других сборок... попробуйте взглянуть на полный пример этого (включая изображения) в Microsoft

Попробуй это

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

Вы не можете сделать это по умолчанию (редактор не позволяет вам выбрать 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>

Используйте эту опцию, только если вам действительно нужно. Если возможно, просто сохраните путь к файлу в настройках и сохраните файл снаружи, например, в папке данных, помимо ваших настроек.

Другие вопросы по тегам