jpg等圖片文件寫入XML,並讀取。以下是winform中 base64轉碼圖片和base64String解碼圖片示例
#region base64轉碼圖片和base64String解碼圖片 /// <summary> /// 將圖片數據轉換為Base64字符串 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public string ToBase64(Image image) { Image img = image; BinaryFormatter binFormatter = new BinaryFormatter(); MemoryStream memStream = new MemoryStream(); binFormatter.Serialize(memStream, img); byte[] bytes = memStream.GetBuffer(); string base64 = Convert.ToBase64String(bytes); return base64; } /// <summary> /// 將Base64字符串轉換為圖片 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private Image ToImage(string base64string) { string base64 = base64string; byte[] bytes = Convert.FromBase64String(base64); MemoryStream memStream = new MemoryStream(bytes); BinaryFormatter binFormatter = new BinaryFormatter(); Image img = (Image)binFormatter.Deserialize(memStream); return img; } /// <summary> /// 編碼寫入XML /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnToBase64_Click(object sender, EventArgs e) { XmlHandler XH = new XmlHandler(); if (this.picDiagram2.Image != null) { path = ToBase64(this.picDiagram2.Image); //path = GZipCompressString(path); XH.UpdateNodeValueToXML(imagePathFlag, path); MessageBox.Show("寫入成功"); } else { MessageBox.Show("無圖片路徑,失敗"); } } /// <summary> /// 解碼展示出 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnToImage_Click(object sender, EventArgs e) { XmlHandler XH = new XmlHandler(); imagePathFlag = "351"; path = XH.GetConfigValue(imagePathFlag, @"C:\Users\SunRongzhen\Desktop\半鋼組態畫面\成型鼓主畫面.png"); //path = GetStringByString(path); if (path != "" && path != null)// && File.Exists(path)) { //picDiagram2.Image = Image.FromFile(path); picDiagram2.Image = ToImage(path); MessageBox.Show("加載成功"); } //找不到路徑就清空 else { picDiagram2.Image = null; } } ///// <summary> ///// 讀取完整路徑 ///// </summary> //string path = ""; /// <summary> /// 加載圖片 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void picDiagram2_MouseDoubleClick(object sender, MouseEventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = false;//該值確定是否可以選擇多個文件 //dialog.Title = "請選擇文件夾"; dialog.Filter = "Image files (*.jpg;*.bmp;*.gif)|*.jpg*.jpeg;*.gif;*.bmp|AllFiles (*.*)|*.*";// "Jpg |*.jpg|Bmp |*.bmp|Gif |*.gif|Png |*.png|Wmf |*.wmf";// "所有文件(*.*)|*.*"; if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { path = dialog.FileName; picDiagram2.Image = Image.FromFile(path); } } #endregion
base64二進制轉碼圖片和base64String解碼圖片示例,轉碼寫入XML,解碼從XML中讀出展示出。base64轉碼,base64解碼Winform示例。