
图片转Base64与Base64解码的C#实现
下载需积分: 27 | 3KB |
更新于2024-09-09
| 10 浏览量 | 举报
收藏
本文档主要介绍了在IT开发中常见的图片和Base64编码之间的相互转换操作,这对于处理上传图片和从API接口接收Base64编码的图片数据非常实用。以下是两个关键方法的详细解释:
1. 图片转换为byte数组(ImgToByte方法)
这个方法用于将`Image`对象转换为字节数组,以便于在网络上传输或存储。首先,创建一个`MemoryStream`对象来临时存储图像数据,然后使用`Save`方法将图片保存到这个流中,指定为JPEG格式(也可以根据需要调整格式)。最后,调用`GetBuffer`获取内存中的原始字节数据,并将其返回。
```
public static byte[] ImgToByte(Image img)
{
try
{
using (MemoryStream ms = new MemoryStream())
{
byte[] imageData = null;
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); // 可以根据需要替换为其他格式
imageData = ms.GetBuffer();
return imageData;
}
}
catch (Exception ee)
{
MessageBox.Show(ee.ToString());
return null;
}
}
```
2. 图片转换为Base64字符串(ImageToBytes方法)
这个方法与前一个相反,它接受一个`Image`对象,根据其原始格式(如JPEG、PNG、BMP、GIF或ICO)将其保存到新的`MemoryStream`中,并读取整个流的内容为字节数组。然后,这些字节被编码成Base64字符串。方法通过检查不同格式的条件语句,确保正确的编码方式。
```
public static string ImageToBytes(Image image)
{
ImageFormat format = image.RawFormat;
using (MemoryStream ms = new MemoryStream())
{
if (format == ImageFormat.Jpeg)
{
image.Save(ms, ImageFormat.Jpeg);
}
// ... 其他格式的处理逻辑
byte[] buffer = new byte[ms.Length];
// 将内存流位置重置到起始位置,以读取完整数据
ms.Seek(0, SeekOrigin.Begin);
ms.Read(buffer, 0, buffer.Length);
// 将字节数组转换为Base64字符串并返回
return Convert.ToBase64String(buffer);
}
}
```
这两个方法在Web开发中常用于处理前端上传图片后将其转换为Base64发送到服务器,或者服务器接收到Base64编码的图片后,将其反序列化回原始图片格式。通过这样的转换,可以简化数据传输,减少网络带宽需求,特别是在移动设备或性能受限的环境中。
相关推荐





snowdenoliver
- 粉丝: 0
资源目录
最新资源
- 高能加速器揭示300种新粒子:量子力学领域的突破
- C#开发的TemplateEngine模板引擎源码自动生成工具
- C语言实现的经典Windows程序设计教程
- Oracle傻瓜问题大全:1000个实用解答
- 探索小程序与iPhone网页调试的最佳实践
- Struts2 3.0版全面入门指南:Hibernate等技术集成
- 数据挖掘技术在电信行业的应用及其需求定义
- 网页图片自动切换效果的js实现方法
- Excel转mdb数据库的步骤及源代码解析
- ASP.NET实现新闻发布系统的开发详解
- 哈工大操作系统期末考试题分享与解析
- 新手必学:PHP编程一百例实例解析
- 单片机编程实践:点亮LED与流水灯
- JavaScript操作XML实例教程:属性操作详解
- FLASH MP3播放器示例代码完整指南
- 探究ucOS 2.86嵌入式系统源程序及文档解析
- 网页设计前台模板:快速打造精美布局
- 深入解析水晶报表的制作方法与技巧
- VB编程技巧:禁止文本框右键菜单的操作指南
- 使用Remoting实现B/S架构下的分布式查询技术
- 吉林大学新版计算机网络课件深度解析
- C++程序员权威高级参考手册(电子版pdf)
- 综合SSH、EXT和DWR框架实现CRUD操作
- 电话时长计算器:C#源码亲情号码计费管理