利用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
  • asp之家 网络编程 m.aspxhome.com