Как я могу сохранить и получить изображение, используя базу данных SQLite и приложение WPF? - PullRequest
3 голосов
/ 21 декабря 2010

Мне нужно сохранить изображение из моего приложения WPF в базе данных SQLite, а затем извлечь то же изображение и отобразить его в приложении.Я попытался сделать это, поместив изображение в байтовый массив и сохранив этот байтовый массив в базе данных SQLite как BLOB, но это не работает.Кто-нибудь может мне помочь?

Ответы [ 2 ]

6 голосов
/ 21 декабря 2010

Я бы предложил сначала преобразовать изображение в строку base64, а затем сохранить его в базе данных.

В C #:

Изображение в строку Base64

public string ImageToBase64(Image image, 
  System.Drawing.Imaging.ImageFormat format)
{
  using (MemoryStream ms = new MemoryStream())
  {
    // Convert Image to byte[]
    image.Save(ms, format);
    byte[] imageBytes = ms.ToArray();

    // Convert byte[] to Base64 String
    string base64String = Convert.ToBase64String(imageBytes);
    return base64String;
  }
}

Строка Base64 для изображения

public Image Base64ToImage(string base64String)
{
  // Convert Base64 String to byte[]
  byte[] imageBytes = Convert.FromBase64String(base64String);
  MemoryStream ms = new MemoryStream(imageBytes, 0, 
    imageBytes.Length);

  // Convert byte[] to Image
  ms.Write(imageBytes, 0, imageBytes.Length);
  Image image = Image.FromStream(ms, true);
  return image;
}

Вы можете сохранить строку в базе данных.С этим связан вопрос: Как мне прочитать образ base64 в WPF?

0 голосов
/ 21 декабря 2010

Почему вы не сохраняете путь к изображению относительно корня приложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...