利用nodejs读取图片并将二进制数据转换成base64格式
作者:暮志未晚Webgl 时间:2024-05-08 09:37:21
读取图片并将二进制数据转换成base64格式
首先,使用nodejs进行数据读取,需要用到nodejs的fs模块进行数据读取:
fs.readFile('你的资源路径','binary',function(err,data){
? ? if(err){
? ? ? ? console.log(err)
? ? }else{
? ? ? ? console.log('数据读取成功');
? ? }
});
读取到当前的文件数据以后,我们还需要使用js的Buffer类进行数据转换:
先用buffer将数据进行缓存
const buffer = new Buffer(data, 'binary');
然后获取到图片的base64格式数据:
buffer.toString('base64')
由于获取到的base64不含有前面的图片类型等内容,所以,我们赋值给image对象的时候,还需要添加上相应的图片类型内容:
img.src = 'data: image/'+ getImageType(fileName) +';base64,' + buffer.toString('base64');
//获取当前图片的格式
function getImageType(str){
? ? var reg = /\.(png|jpg|gif|jpeg|webp)$/;
? ? return str.match(reg)[1];
}
最后,附上完整的代码:
fs.readFile('你的资源路径','binary',function(err,data){
? ? if(err){
? ? ? ? console.log(err)
? ? }else{
? ? ? ? const buffer = new Buffer(data, 'binary');
? ? ? ? img.src = 'data: image/'+ getImageType(fileName) +';base64,' + buffer.toString('base64');
? ? }
});
既然有读取,那么,再加上如何将base64格式的图片保存到本地,还是需要用到buffer进行保存:
//保存图片
function saveImg(){
? ? const base64 = canvas.toDataURL().replace(/^data:image\/\w+;base64,/, ""); //必须去掉前缀
? ? const buffer = new Buffer(base64, 'base64');
? ? fs.writeFile('保存路径', buffer, function (err) {
? ? ? ? if(err) throw err;
? ? ? ? console.log('保存成功');
? ? });
}
nodejs读取服务器图片,转为base64显示在网页上
const fs = require("fs");
const mineType = require("mime-types");
function imgToBase64(url) {
try {
let imgurl = config.imageUrl;
let imageData = fs.readFileSync(imgurl);
if (!imageData) return "";
let bufferData = Buffer.from(imageData).toString("base64");
let base64 = "data:" + mineType.lookup(imgurl) + ";base64," + bufferData;
return base64;
} catch (error) {
return "";
}
}
来源:https://blog.csdn.net/qq_30100043/article/details/104653407
标签:nodejs,读取图片,二进制数据,base64
0
投稿
猜你喜欢
Python 利用切片从列表中取出一部分使用的方法
2021-04-05 14:14:19
PHP设计模式之命令模式示例详解
2024-05-11 10:11:06
使用pandas实现筛选出指定列值所对应的行
2023-05-06 18:29:53
MySQL常用基本SQL语句总结
2024-01-28 06:39:43
跟老齐学Python之让人欢喜让人忧的迭代
2022-10-02 14:33:23
python os.listdir()乱码解决方案
2021-09-20 02:52:42
python数据XPath使用案例详解
2023-07-28 15:24:24
Python中turtle库的使用实例
2023-08-01 23:05:56
利用FrontPage 2003制作网络申请系统
2008-02-21 14:34:00
一篇文章讲解清楚MySQL索引
2024-01-28 11:59:24
MySQL系列多表连接查询92及99语法示例详解教程
2024-01-21 03:05:33
asp如何写入超长的字符串?
2010-06-09 18:53:00
基于bootstrap插件实现autocomplete自动完成表单
2024-05-09 10:39:43
在Django中创建动态视图的教程
2021-09-25 09:17:28
Pandas.DataFrame的行名和列名的修改
2022-10-12 12:40:35
php防止SQL注入详解及防范
2023-07-22 19:25:53
python 实现 hive中类似 lateral view explode的功能示例
2021-08-20 13:51:45
Python多线程编程之多线程加锁操作示例
2023-11-01 00:37:19
用ASP创建多栏选项列表SELECT
2007-10-08 13:18:00
python中base64编码简介
2023-09-21 20:26:12