图片转Base64与Base64解码的C#实现
需积分: 27 108 浏览量
更新于2024-09-09
收藏 3KB TXT 举报
本文档主要介绍了在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编码的图片后,将其反序列化回原始图片格式。通过这样的转换,可以简化数据传输,减少网络带宽需求,特别是在移动设备或性能受限的环境中。
819 浏览量
1482 浏览量
10771 浏览量
318 浏览量
195 浏览量
2238 浏览量
819 浏览量

snowdenoliver
- 粉丝: 0
最新资源
- Web远程教学系统需求分析指南
- 禅道6.2版本发布,优化测试流程,提高安全性
- Netty传输层API中文文档及资源包免费下载
- 超凡搜索:引领搜索领域的创新神器
- JavaWeb租房系统实现与代码参考指南
- 老冀文章编辑工具v1.8:文章编辑的自动化解决方案
- MovieLens 1m数据集深度解析:数据库设计与电影属性
- TypeScript实现tca-flip-coins模拟硬币翻转算法
- Directshow实现多路视频采集与传输技术
- 百度editor实现无限制附件上传功能
- C语言二级上机模拟题与VC6.0完整版
- A*算法解决八数码问题:AI领域的经典案例
- Android版SeetaFace JNI程序实现人脸检测与对齐
- 热交换器效率提升技术手册
- WinCE平台CPU占用率精确测试工具介绍
- JavaScript实现的压缩包子算法解读