| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

C#中图片与BASE64码互相转换

//图片 转为    base64编码的文本          private void button1_Click(object sender, EventArgs e)          {              OpenFileDialog dlg = new OpenFileDialog();              dlg.Multiselect = true;              dlg.Title = "选择要转换的图片";              dlg.Filter = "Image files (*.jpg;*.bmp;*.gif;*.png)|*.jpg*.jpeg;*.gif;*.bmp|AllFiles (*.*)|*.*";              if (DialogResult.OK == dlg.ShowDialog())              {                  for (int i = 0; i < dlg.FileNames.Length; i++)                  {                      ImgToBase64String(dlg.FileNames[i].ToString());                  }              }          }          //图片 转为    base64编码的文本          private void ImgToBase64String(string Imagefilename)          {              try              {                  Bitmap bmp = new Bitmap(Imagefilename);                  this.pictureBox1.Image = bmp;                  FileStream fs = new FileStream(Imagefilename + ".txt", FileMode.Create);                  StreamWriter sw = new StreamWriter(fs);                      MemoryStream ms = new MemoryStream();                  bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);                  byte[] arr = new byte[ms.Length];                  ms.Position = 0;                  ms.Read(arr, 0, (int)ms.Length);                  ms.Close();                  String strbaser64 = Convert.ToBase64String(arr);                  sw.Write(strbaser64);                      sw.Close();                  fs.Close();                 // MessageBox.Show("转换成功!");              }              catch (Exception ex)              {                  MessageBox.Show("ImgToBase64String 转换失败\nException:" + ex.Message);              }          }              //base64编码的文本 转为    图片          private void button2_Click(object sender, EventArgs e)          {              OpenFileDialog dlg = new OpenFileDialog();              dlg.Multiselect = true;              dlg.Title = "选择要转换的base64编码的文本";              dlg.Filter = "txt files|*.txt";              if (DialogResult.OK == dlg.ShowDialog())              {                  for (int i = 0; i < dlg.FileNames.Length; i++)                  {                      Base64StringToImage(dlg.FileNames[i].ToString());                  }                                }          }          //base64编码的文本 转为    图片          private void Base64StringToImage(string txtFileName)          {              try              {                  FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);                  StreamReader sr = new StreamReader(ifs);                      String inputStr = sr.ReadToEnd();                  byte[] arr = Convert.FromBase64String(inputStr);                  MemoryStream ms = new MemoryStream(arr);                  Bitmap bmp = new Bitmap(ms);                      //bmp.Save(txtFileName + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);                  //bmp.Save(txtFileName + ".bmp", ImageFormat.Bmp);                  //bmp.Save(txtFileName + ".gif", ImageFormat.Gif);                  //bmp.Save(txtFileName + ".png", ImageFormat.Png);                  ms.Close();                  sr.Close();                  ifs.Close();                  this.pictureBox2.Image = bmp;                  if (File.Exists(txtFileName))                  {                      File.Delete(txtFileName);                  }                  //MessageBox.Show("转换成功!");              }              catch (Exception ex)              {                  MessageBox.Show("Base64StringToImage 转换失败\nException:" + ex.Message);              }          }