如何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字符串
457浏览 • 1回复 待解决
HarmonyOS如何将图片转Base64
778浏览 • 1回复 待解决
怎么把PixelMap图片转BASE64
9237浏览 • 1回复 待解决
js canvas转base64编码图片不全
10604浏览 • 1回复 待解决
HarmonyOS 如何将base64数据转换为图片
385浏览 • 1回复 待解决
PixelMap怎么转Base64?(非Java)
3115浏览 • 2回复 待解决
如何将PixelMap转图片base64字符串?
382浏览 • 1回复 待解决
如何将图片base64字符串转PixelMap?
476浏览 • 1回复 待解决
验证pixelmap数据buffer转base64是否正常
1738浏览 • 1回复 待解决
HarmonyOS Image如何显示base64的图片?
303浏览 • 1回复 待解决
如何实现PixelMap和base64的相互转换
1638浏览 • 1回复 待解决
HarmonyOS 图片进行base64编码报错
517浏览 • 1回复 待解决
ArkTS中二进制颜色值如何转换成Color,如#FFFFFF转换成Color
306浏览 • 1回复 待解决
HarmonyOS 二维码图片或者resource中图片转base64,传给RN
541浏览 • 1回复 待解决
有没有base64转化的相关代码?
706浏览 • 0回复 待解决
HarmonyOS 图片操作,合成后导出base64
82浏览 • 1回复 待解决
HarmonyOS Image标签如何显示base64的图片资源?
196浏览 • 1回复 待解决
HarmonyOS resources/media下的图片可以转换成PixelMap吗?
87浏览 • 1回复 待解决
HarmonyOS 如何将base64的图片保存到相册
748浏览 • 1回复 待解决
HarmonyOS base64解码报错
666浏览 • 1回复 待解决
HarmonyOS base64编码问题
403浏览 • 1回复 待解决
HarmonyOS 图片转为base64字符串
86浏览 • 1回复 待解决
base64字符串如何转为图片并保存
2466浏览 • 1回复 待解决
Map类型怎么转换成Json string
2069浏览 • 1回复 待解决
HarmonyOS base64编码的API
102浏览 • 1回复 待解决
将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
感谢大佬。