2013-02-26 57 views
6

我試圖將圖像(png)存儲到Windows 8應用程序中的sqlite數據庫中,並且我想通了通過將其轉換爲base64字符串並將字符串存儲到數據庫來完成。後來在應用程序中,我想將base64字符串轉換爲PNG圖像並將其存儲到指定位置。問題是我不知道如何將圖像轉換爲base64和base64來將圖像存儲到c#windows 8應用程序中的指定位置。任何幫助,將不勝感激。如何將圖像(.png)轉換爲base64字符串,反之亦然,並將其掃描到指定位置

回答

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



    public Image Base64ToImage(string base64String) 
    { 
     // Convert Base64 String to byte[] 
     byte[] imageBytes = Convert.FromBase64String(base64String); 
     using (var 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; 
     } 
    } 
+0

@HardLuck ...看起來不錯,在第二種方法中,不應該在使用塊中初始化MemoryStream以確保它正確處置? – Paul 2013-02-26 12:48:17

+0

你說得對,現在更正確。 – HardLuck 2013-02-26 12:57:35

+0

@hardluck如何將圖像存儲到應用程序中的指定位置說應用程序的資產文件夾? – Justice 2013-02-26 13:23:47

相關問題