查看: 3731|回复: 0

[.NET开发] C#实现字符串与图片的Base64编码转换操作示例

发表于 2018-2-9 08:00:00

本文实例讲述了C#实现字符串与图片的Base64编码转换操作。分享给大家供大家参考,具体如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.IO;
  9. using System.Drawing.Imaging;
  10. namespace base64_img
  11. {
  12. public partial class Form1 : Form
  13. {
  14. public Form1()
  15. {
  16. InitializeComponent();
  17. }
  18. //图片 转为 base64编码的文本
  19. private void button1_Click(object sender, EventArgs e)
  20. {
  21. OpenFileDialog dlg = new OpenFileDialog();
  22. dlg.Title = "选择要转换的图片";
  23. dlg.Filter = "Image files (*.jpg;*.bmp;*.gif)|*.jpg*.jpeg;*.gif;*.bmp|AllFiles (*.*)|*.*";
  24. if (DialogResult.OK == dlg.ShowDialog())
  25. {
  26. ImgToBase64String(dlg.FileName);
  27. }
  28. }
  29. //图片 转为 base64编码的文本
  30. private void ImgToBase64String(string Imagefilename)
  31. {
  32. try
  33. {
  34. Bitmap bmp = new Bitmap(Imagefilename);
  35. this.pictureBox1.Image = bmp;
  36. FileStream fs = new FileStream(Imagefilename + ".txt", FileMode.Create);
  37. StreamWriter sw = new StreamWriter(fs);
  38. MemoryStream ms = new MemoryStream();
  39. bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
  40. byte[] arr = new byte[ms.Length];
  41. ms.Position = 0;
  42. ms.Read(arr, 0, (int)ms.Length);
  43. ms.Close();
  44. String strbaser64 = Convert.ToBase64String(arr);
  45. sw.Write(strbaser64);
  46. sw.Close();
  47. fs.Close();
  48. MessageBox.Show("转换成功!");
  49. }
  50. catch (Exception ex)
  51. {
  52. MessageBox.Show("ImgToBase64String 转换失败/nException:" + ex.Message);
  53. }
  54. }
  55. //base64编码的文本 转为 图片
  56. private void button2_Click(object sender, EventArgs e)
  57. {
  58. OpenFileDialog dlg = new OpenFileDialog();
  59. dlg.Title = "选择要转换的base64编码的文本";
  60. dlg.Filter = "txt files|*.txt";
  61. if (DialogResult.OK == dlg.ShowDialog())
  62. {
  63. Base64StringToImage(dlg.FileName);
  64. }
  65. }
  66. //base64编码的文本 转为 图片
  67. private void Base64StringToImage(string txtFileName)
  68. {
  69. try
  70. {
  71. FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
  72. StreamReader sr = new StreamReader(ifs);
  73. String inputStr = sr.ReadToEnd();
  74. byte[] arr = Convert.FromBase64String(inputStr);
  75. MemoryStream ms = new MemoryStream(arr);
  76. Bitmap bmp = new Bitmap(ms);
  77. bmp.Save(txtFileName + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
  78. //bmp.Save(txtFileName + ".bmp", ImageFormat.Bmp);
  79. //bmp.Save(txtFileName + ".gif", ImageFormat.Gif);
  80. //bmp.Save(txtFileName + ".png", ImageFormat.Png);
  81. ms.Close();
  82. sr.Close();
  83. ifs.Close();
  84. this.pictureBox1.Image = bmp;
  85. MessageBox.Show("转换成功!");
  86. }
  87. catch (Exception ex)
  88. {
  89. MessageBox.Show("Base64StringToImage 转换失败/nException:"+ex.Message);
  90. }
  91. }
  92. }
  93. }
复制代码

PS:这里再为大家提供几款比较实用的base64在线编码解码工具供大家使用:

BASE64编码解码工具:
http://tools.jb51.net/transcoding/base64

在线图片转换BASE64工具:
http://tools.jb51.net/transcoding/img2base64

Base64在线编码解码 UTF-8版:
http://tools.jb51.net/tools/base64_decode-utf8.php

Base64在线编码解码 gb2312版:
http://tools.jb51.net/tools/base64_decode-gb2312.php

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#编码操作技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》

希望本文所述对大家C#程序设计有所帮助。

您可能感兴趣的文章:

  • C# Base64编码函数
  • C# Base64编码
  • asp.C#实现图片文件与base64string编码解码
  • c# Base64编码和图片的互相转换代码
  • Base64编码解码原理及C#编程实例
  • C#解码base64编码二进制数据的方法
  • C#对二进制数据进行base64编码的方法
  • C# Base 64 编码/解码实现代码
  • C#实现Base64处理的加密解密,编码解码示例
  • c#中自定义Base16编码解码的方法示例


回复

使用道具 举报