2013-02-26 32 views
6

Tôi đang cố gắng lưu trữ hình ảnh (png) vào cơ sở dữ liệu sqlite trong một ứng dụng windows 8, và tôi đã tìm ra nó được thực hiện bằng cách chuyển đổi nó thành chuỗi base64 và lưu chuỗi vào cơ sở dữ liệu. Sau đó trong ứng dụng tôi muốn chuyển đổi chuỗi base64 đó thành hình ảnh png và lưu nó vào một vị trí được chỉ định. Vấn đề là tôi không biết làm thế nào để chuyển đổi hình ảnh sang base64 và base64 thành hình ảnh và lưu nó vào một vị trí được chỉ định trong ứng dụng C# windows 8. Bất kỳ trợ giúp sẽ được đánh giá cao.Làm thế nào để chuyển đổi hình ảnh (.png) thành chuỗi base64, ngược lại và xâu chuỗi nó đến một vị trí cụ thể

Trả lời

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 ... Có vẻ tốt, trong phương pháp thứ hai, không nên MemoryStream được khởi tạo trong khối sử dụng để đảm bảo rằng nó được xử lý đúng cách? – Paul

+0

Bạn nói đúng, bây giờ chính xác hơn. – HardLuck

+0

@hardluck cách lưu hình ảnh vào vị trí được chỉ định trong ứng dụng cho biết thư mục nội dung của ứng dụng? – Justice

Các vấn đề liên quan