如何base64转换成图片?
在C#中
图片到byte[]再到base64string的转换:
Bitmap bmp = new Bitmap(filepath);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
string pic = Convert.ToBase64String(arr);
base64string到byte[]再到图片的转换:
byte[] imageBytes = Convert.FromBase64String(pic);
//读入MemoryStream对象
MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
memoryStream.Write(imageBytes, 0, imageBytes.Length);
//转成图片
Image image = Image.FromStream(memoryStream);
C
赞
收藏 0
回答 2
待解决
相关问题
怎么把PixelMap图片转BASE64
7156浏览 • 1回复 待解决
js canvas转base64编码图片不全
8288浏览 • 1回复 待解决
PixelMap怎么转Base64?(非Java)
318浏览 • 2回复 待解决
base64字符串如何转为图片并保存
115浏览 • 1回复 待解决
请问如何将openblock文件转换成exe文件
651浏览 • 0回复 待解决
怎么把base64字符串转成图片保存到本地
297浏览 • 1回复 待解决
鸿蒙移植kotlin代码,需要将其转换成java实现吗?
11983浏览 • 2回复 待解决
BUILD可不可以转换成SConstruct脚本文件????
2809浏览 • 1回复 待解决
DevEco使用js开发如何将视频转码为base64或者blob呢
2400浏览 • 1回复 待解决
Color.Balck是什么类型,如何转换成number类似0x00000这种
123浏览 • 1回复 待解决
Base64图片要通过JSON传输,涉及编解码。请问下有没有什么接口可以做到。
665浏览 • 1回复 待解决
将rawfile中json格式的字符串转换成对应的object对象后,调用实例方法后程序崩溃
202浏览 • 1回复 待解决
如何将类Java语言的线程模型(内存共享)的实现方式转换成在ArkTS的线程模型下(内存隔离)的实现方式
83浏览 • 1回复 待解决
arkts有类似window.btoa吧二进制字符串转为base64字符串的方法吗?
580浏览 • 1回复 待解决
安卓TextView转鸿蒙安卓TextView转鸿蒙
6641浏览 • 1回复 待解决
鸿蒙智能表怎样用js语言将本地图片转为baes64码呀?
6239浏览 • 2回复 待解决
如何将app.media.app_icon,转换为PixelMap
95浏览 • 1回复 待解决
如何将时间戳转换为日期格式的时间
206浏览 • 1回复 待解决
mysql怎么快速迁移到ocean Base啊?
2359浏览 • 1回复 待解决
应用开发中的预览器换成手表模式
8044浏览 • 2回复 待解决
如何设置窗口启动图片
229浏览 • 1回复 待解决
如何实现图片点击跳转?
3482浏览 • 1回复 待解决
eTS中如何进行时间与字符串转换?
1805浏览 • 1回复 待解决
无线振弦采集仪和LORA转4G网关如何组网?
1570浏览 • 0回复 待解决
如何将datashare类型的数据转换为internal类型的数据?
613浏览 • 0回复 待解决
将base64编码转换成图片
有时候会遇到要把前端发送过来的图片的文件base64编码转化成图片,我看过了大部分的文章,他们都是使用new Buffer来实现转化的,但是你要知道,new Buffer已经被废弃了,下面是我的方法:
先获取图片的base64编码
可以使用FileReader,像这样:
<!-- test.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>获取图片的base64编码</title>
</head>
<body>
<input type="file" name="file" id="inputBox">
<script src="./test.js"></script>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
// test.js
var inputBox = document.getElementById("inputBox")
inputBox.onchange = function(){
var reader = new FileReader()
reader.readAsDataURL(this.files[0])
reader.onload = function(){
console.log(reader.result)
}
}
1
2
3
4
5
6
7
8
9
选择文件之后
控制台输出的结果如下:
可以看见已经成功把图片转化成了base64编码,同时可以看到前缀是data:image/png;base64,也就是说,这张图片是png格式的,事实上,真正的base64编码是前缀之后的那些数据。
拿到图片的base64编码之后,就可以将他转化成图片了
具体方式是这样的:
// test.js
var inputBox = document.getElementById("inputBox")
inputBox.onchange = function(){
var reader = new FileReader()
reader.readAsDataURL(this.files[0])
reader.onload = function(){
// 将 “data:image\/png;base64,”前缀去除掉,然后将图片的base64编码通过 post请求发送给服务器
var data = reader.result.replace(/^data:image\/png;base64,/g,"")
$.post("http://localhost:3000/index",""+data).then(function(data){
console.log(data)
})
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
// server.js
const http = require("http")
const fs = require("fs")
const server = http.createServer(function(req,res){
res.setHeader("Access-Control-Allow-Origin","null")
if(req.url === "/index"){
// 服务器接收图片数据的过程
var data = []
req.on("error",function(err){
if(err) console.log(err)
}).on("data",function(chunk){
data.push(chunk)
}).on("end",function(){
data = Buffer.concat(data).toString()
var base64 = Buffer.from(data,"base64")
// 将接收到的图片base64编码转换成 demo.png
fs.writeFile("demo.png",base64,function(){
console.log("\033[34mdemo.png has been converted to complete!\033[39m")
})
})
res.end("the index have received the base64 code..")
}
})
server.listen(3000,function(){
console.log("server is running at http://localhost:3000")
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
看看结果:
客户端成功接收到响应
服务器成功把base64转化成图片 demo.png
demo.png
已经转化成了图片了
大功告成
我写过一个服务器框架sofer,通过sofer搭建的服务器可以更快更方便处理媒体文件的信息,毕竟我已经这些功能封装成一个模块,下一篇会讲怎么使用sofer处理媒体文件
sofer源代码:
https://github.com/shataniya/sofer
傻她你呀
关注
————————————————
版权声明:本文为CSDN博主「傻她你呀」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41672008/article/details/102882431
感谢大佬。