Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I store and retrieve an image using an SQLite database and a WPF application?

Tags:

c#

sqlite

image

wpf

I have to store an image from my WPF application to the SQLite database, and then retrieve the same image and display it in the application. I tried doing this by coverting the image into byte array and storing that byte array to the SQLite database as BLOB, but this is not working. Can someone help me?

like image 591
dhanya Avatar asked Dec 21 '10 06:12

dhanya


1 Answers

I would suggest to convert the image to a base64 string first and then store it in the database.

In C#:

Image to Base64 String

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 String to Image

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

You can save the string in the database. This question is related to it: How do i read a base64 image in WPF?

like image 84
Christian Avatar answered Nov 15 '22 07:11

Christian