c# Base64編碼和圖片的互相轉(zhuǎn)換代碼
事出有因
我們已經(jīng)做了一個編輯器,這個編輯器可以以xml格式存儲一些信息。在存儲圖片信息時我們碰到了一些問題。我們本來在xml信息中存儲的是圖片的路徑,然而一旦客戶把這個信息copy到其他電腦上而沒有同時copy相關(guān)的圖片時,就會出現(xiàn)一些問題。
后來,我們把圖片數(shù)據(jù)轉(zhuǎn)換為Base64編碼,替代了原先存儲圖片路徑的方式。
轉(zhuǎn)換流程
將圖片轉(zhuǎn)化為Base64字符串的流程是:首先使用BinaryFormatter將圖片文件序列化為二進制數(shù)據(jù),然后使用Convert類的ToBase64String方法。將Base64字符串轉(zhuǎn)換為圖片的流程正好相反:使用Convert類的FromBase64String得到圖片文件的二進制數(shù)據(jù),然后使用BinaryFormatter反序列化方法。
/// <summary> /// 將圖片數(shù)據(jù)轉(zhuǎn)換為Base64字符串 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ToBase64(object sender, EventArgs e) { Image img = this.pictureBox.Image; BinaryFormatter binFormatter = new BinaryFormatter(); MemoryStream memStream = new MemoryStream(); binFormatter.Serialize(memStream, img); byte[] bytes = memStream.GetBuffer(); string base64 = Convert.ToBase64String(bytes); this.richTextBox.Text = base64; } /// <summary> /// 將Base64字符串轉(zhuǎn)換為圖片 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ToImage(object sender, EventArgs e) { string base64 = this.richTextBox.Text; byte[] bytes = Convert.FromBase64String(base64); MemoryStream memStream = new MemoryStream(bytes); BinaryFormatter binFormatter = new BinaryFormatter(); Image img = (Image)binFormatter.Deserialize(memStream); this.pictureBox.Image = img; }
運行結(jié)果
- C# 圖片與Base64碼的相互轉(zhuǎn)化問題(代碼詳解)
- c#和java base64不一致的解決方法
- C#實現(xiàn)字符串與圖片的Base64編碼轉(zhuǎn)換操作示例
- C#實現(xiàn)Base64處理的加密解密,編碼解碼示例
- C#編寫的Base64加密和解密類
- C#解碼base64編碼二進制數(shù)據(jù)的方法
- asp.C#實現(xiàn)圖片文件與base64string編碼解碼
- c# 實現(xiàn)文件上傳下載功能的實例代碼
- C#實現(xiàn)的文件上傳下載工具類完整實例【上傳文件自動命名】
- C# 文件上傳下載(Excel導入,多線程下載)功能的實現(xiàn)代碼
- C#實現(xiàn)Web文件上傳的兩種方法實例代碼
- c# 用Base64實現(xiàn)文件上傳
相關(guān)文章
使用XmlSerializer序列化List對象成XML格式(list對象序列化)
這篇文章主要介紹了使用XmlSerializer序列化List對象成XML格式(list對象序列化),需要的朋友可以參考下2014-03-03