新闻中心

C# 如何将 Base64 字符串转换为图片_C# Base64 转图片实现指南

2025-11-05
浏览次数:
返回列表
答案:在C#中将Base64字符串转换为图片需先去除data:image/{类型};base64,前缀,再用Convert.FromBase64String解码为字节数组,接着通过MemoryStream创建Image对象并保存。1. 检查并截取逗号后有效Base64内容;2. 解码为byte[];3. 使用using(MemoryStream)和Image.FromStream加载图像;4. 调用S*e输出文件。需捕获FormatException等异常确保健壮性,完整流程包含前缀处理、解码、流操作与资源释放。

c# 如何将 base64 字符串转换为图片_c# base64 转图片实现指南

在 C# 中将 Base64 字符串转换为图片是一个常见的需求,比如处理前端传来的图像数据、保存用户上传的头像等。实现过程并不复杂,核心是将 Base64 字符串解码为字节数组,再通过内存流创建图像对象。

1. 理解 Base64 图片字符串格式

Base64 编码的图片通常以 data:image/{类型};base64, 开头,例如:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

在转换前需要先移除前面的 MIME 类型声明部分,只保留真正的 Base64 内容。

2. 去除 Data URI 前缀并解码

使用 SubstringIndexOf 判断是否存在前缀,并提取有效 Base64 数据:

string base64String = originalString; int indexOfComma = originalString.IndexOf(","); if (indexOfComma > 0 && originalString.StartsWith("data:image")) { base64String = originalString.Substring(indexOfComma + 1); } byte[] imageBytes = Convert.FromBase64String(base64String);

3. 使用 MemoryStream 创建 Image 对象

将字节数组写入内存流,然后用 Image.FromStream 加载图片:

刺鸟创客 刺鸟创客

一款专业高效稳定的AI内容创作平台

刺鸟创客 110 查看详情 刺鸟创客 using (MemoryStream ms = new MemoryStream(imageBytes)) { Image image = Image.FromStream(ms); // 可保存到文件或赋值给 PictureBox image.S*e("output.png", System.Drawing.Imaging.ImageFormat.Png); }

注意:MemoryStream 和 Image 都实现了 IDisposable,建议用 using 确保资源释放。

4. 完整示例代码

以下是一个完整的控制台示例:

string base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAE..."; try { int idx = base64.IndexOf("base64,"); if (idx != -1) base64 = base64.Substring(idx + 7);
byte[] bytes = Convert.FromBase64String(base64);

using (MemoryStream ms = new MemoryStream(bytes))
{
    using (Image img = Image.FromStream(ms))
    {
        img.S*e("decoded_image.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
        Console.WriteLine("图片已保存!");
    }
}

} catch (FormatException) { Console.WriteLine("Base64 格式错误"); } catch (Exception ex) { Console.WriteLine("转换失败: " + ex.Message); }

基本上就这些。只要确保 Base64 字符串完整、无多余字符,并正确处理前缀和异常,就能稳定实现转换。

以上就是C# 如何将 Base64 字符串转换为图片_C# Base64 转图片实现指南的详细内容,更多请关注其它相关文章!


# 相关文章  # 推广网站哪些好做点的  # 民宿推广营销文案简短  # 文具类营销方法推广介绍  # 汕头快速优化网站  # 糯米鸡营销推广方案范文  # 陇南矩阵系统关键词排名  # 大鱼营销品牌推广方案  # 精准推广营销公司简介  # 北京学会网站建设  # 自己建设网站有多难啊  # 再用  # 解决问题  # 中文网  # 前端  # 就能  # 加载  # 身份验证  # 如何将  # 是一个  # 转换为  # c#  # stream  # win  # 字节  # 编码  # go 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读  押井守高度称赞《辐射4》:玩了八年都停不下来!  怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】  J*a应用集成GitHub CLI与API认证指南  Win11怎么开启高性能模式_Windows 11电源计划优化设置  ArrayList与LinkedList操作复杂度详解:遍历与修改  C++如何生成随机数_C++ random库使用方法与范围设置  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  PHP中高效并行检查多链接状态的教程  Angular中单选按钮的正确使用与常见陷阱解析  win11 arm版怎么安装 M1/M2 Mac虚拟机安装ARM win11的方法  2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示  中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】  PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比  QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用  html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】  俄罗斯方块最新版入口 俄罗斯方块在线玩官网入口  照顾宝贝2小游戏点击立即在线玩  Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式  Composer中的^和~符号代表什么_精通Composer版本号语义化约束  自定义Bag-of-Words实现:处理带负号的词汇权重  mcjs网页版流畅运行 mcjs低配电脑畅玩入口  铁路12306官网网页端快速入口 铁路12306官方首页登录教程  QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录  J*aScript异步迭代器_j*ascript异步遍历  Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看  php源码怎么在电脑上测试_电脑测试php源码方法步骤【教程】  QQ邮箱在线登录平台 QQ邮箱个人邮箱网页版入口  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  在J*a中如何使用Stream.map转换元素_Stream映射操作解析  苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】  可靠CSGO开箱平台解析 CSGO开箱网合集  深入理解Promise链:如何在catch后中断then的执行  Django表单验证失败时保留用户输入数据的最佳实践  Go语言中Map存储的结构体如何调用指针方法:深入解析与实践  sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南  解决移动端滚动问题的overflow属性应用指南  J*aScript中localStorage数据的获取、清洗与格式化教程  Golang如何实现容器化日志收集与分析_Golang容器日志收集分析方法  新三国志曹操传110级星符试炼夏侯渊极难攻略  4399免费游戏网址入口 4399小游戏免费入口点开即玩  Python getattr() 异常处理深度解析:避免程序意外退出  学习通网页版官方登录 超星学习通电脑端入口指南  sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置  Go Martini框架:动态服务解码后的图片内容  一加Ace 6T支持全新明眸护眼:通过了最严苛的护眼小金标认证  wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法  word中如何让数字纵向排列_Word数字纵向排列方法  抖音DOU+怎么投最有效 抖音付费推广的ROI提升技巧 

搜索