Image和Base64互相转换
base64介绍:
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。
一个简单的功能,其代码如下。
public string FileToBase64(string filename) { string result = string.Empty; try { using (FileStream fs = new FileStream(filename,FileMode.Open,FileAccess.Read)) { byte[] byteArray = new byte[fs.Length]; fs.Read(byteArray,0,byteArray.Length); result = Convert.ToBase64String(byteArray); } } catch { result = ""; } return result; }
调用:
static void Main(string[] args) { ImgAndBaseProject imgAndBase = new ImgAndBaseProject(); System.Console.WriteLine(imgAndBase.FileToBase64(@"C:\Users\MACHENIKE\source\repos\ImgToBaseSixFour\ImgToBaseSixFour\GitHub.png")); }
我们在winform上把这个base64变成img放到控件上,大概就长这样吧
代码:
public Image Base64ToImg(string base64str)
{
byte[] arr = Convert.FromBase64String(base64str);
MemoryStream ms = new MemoryStream(arr);
Bitmap bmp = new Bitmap(ms);
return bmp;
}
完整代码如下:

public partial class Form1 : Form { public Form1() { InitializeComponent(); } public string FileToBase64(string filename) { string result = string.Empty; try { using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read)) { byte[] byteArray = new byte[fs.Length]; fs.Read(byteArray, 0, byteArray.Length); result = Convert.ToBase64String(byteArray); } } catch { result = ""; } return result; } public Image Base64ToImg(string base64str) { byte[] arr = Convert.FromBase64String(base64str); MemoryStream ms = new MemoryStream(arr); Bitmap bmp = new Bitmap(ms); return bmp; } private void Form1_Load(object sender, EventArgs e) { this.richTextBox1.Text = FileToBase64(@"C:\Users\MACHENIKE\source\repos\ImgToBaseSixFour\ImgToBaseSixFour\GitHub.png").Trim(); } private void button1_Click(object sender, EventArgs e) { //MessageBox.Show(this.richTextBox1.Text); this.pictureBox1.Image = Base64ToImg(this.richTextBox1.Text.Trim()); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异