如何将base64格式图片字符串显示在Windows Forms项目的picture box控件中
实现步骤
- 将base64字符串解码为字节数组:调用
Convert.FromBase64String()方法传入你的base64字符串即可。 - 将解码后的字节数组写入内存流:使用
MemoryStream类加载字节数组。 - 从内存流生成Image对象:调用
Image.FromStream()方法传入内存流,直接赋值给PictureBox控件的Image属性。
完整代码示例
using System; using System.Drawing; using System.IO; using System.Windows.Forms; public class ImageHelper { // base64转Image方法 public static Image Base64ToImage(string base64String) { // 如果base64带data:image前缀,先去掉前缀再转换 if (base64String.StartsWith("data:image")) { base64String = base64String.Split(',')[1]; } // 解码base64为字节数组 byte[] imageBytes = Convert.FromBase64String(base64String); // 使用using自动释放MemoryStream资源,避免内存泄漏 using (MemoryStream ms = new MemoryStream(imageBytes)) { return Image.FromStream(ms); } } // 调用示例:可放在按钮点击等事件逻辑中 private void button1_Click(object sender, EventArgs e) { // 替换为你自己的base64图片字符串 string yourBase64Str = "实际的base64图片编码内容"; try { // 赋值给PictureBox控件 pictureBox1.Image = Base64ToImage(yourBase64Str); // 可选配置:设置图片自适应控件大小显示 pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; } catch (Exception ex) { MessageBox.Show($"图片加载失败:{ex.Message}"); } } }
注意事项
- .NET Framework项目默认已引用
System.Drawing依赖,.NET Core/.NET 5+版本的Windows Forms项目需要先通过NuGet安装System.Drawing.Common包,再使用图片相关API。 - 确认传入的base64字符串是合法的图片编码,若存在格式错误、字符缺失等问题会抛出转换异常。
- 建议在转换逻辑外层加异常捕获,避免非法输入导致程序崩溃。
内容的提问来源于stack exchange,提问作者Tomer
相关产品推荐
相关产品推荐

