Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例


Posted in NodeJs onNovember 21, 2016

问题:将图片转成datauri

今天,在QQ群有个群友问了个问题:“nodejs读取图片,转成base64,怎么读取呢?” 想了一下,他想问的应该是 怎么样把图片嵌入到网页中去,即如何把图片转成对应的 datauri。

是个不错的问题,而且也是个很常用的功能。快速实现了个简单的demo,这里顺便记录一下。

实现思路

思路很直观:1、读取图片二进制数据 -> 2、转成base64字符串 -> 3、转成datauri。

关于base64的介绍,可以参考阮一峰老师的文章。而 datauri 的格式如下

data:[][;base64],

具体到png图片,大概如下,其中 “xxx” 就是前面的base64字符串了。接下来,我们看下在nodejs里该如何实现

data: image/png;base64, xxx

具体实现

首先,读取本地图片二进制数据。

var fs = require('fs');
var filepath = './1.png';

var bData = fs.readFileSync(filepath);

然后,将二进制数据转换成base64编码的字符串。

var base64Str = bData.toString('base64');

最后,转换成datauri的格式。

var datauri = 'data:image/png;base64,' + base64Str;

完整例子代码如下,代码非常少:

var fs = require('fs');
var filepath = './1.png';

var bData = fs.readFileSync(filepath);
var base64Str = bData.toString('base64');
var datauri = 'data:image/png;base64,' + base64Str;

console.log(datauri);

demo地址

demo地址请点击这里

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
基于promise.js实现nodejs的promises库
Jul 06 NodeJs
nodejs事件的监听与触发的理解分析
Feb 12 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 NodeJs
nodejs批量下载图片的实现方法
May 19 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
使用vs code开发Nodejs程序的使用方法
Sep 21 NodeJs
Nodejs中crypto模块的安全知识讲解
Jan 03 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
nodejs分离html文件里面的js和css的方法
Apr 09 NodeJs
详解NodeJS模块化
Jun 15 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 NodeJs
Nodejs下DNS缓存问题浅析
Nov 16 #NodeJs
NodeJS中的MongoDB快速入门详细教程
Nov 11 #NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 #NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 #NodeJs
nodejs的HTML分析利器node-jquery用法浅析
Nov 08 #NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 #NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 #NodeJs
You might like
php学习之流程控制实现代码
2011/06/09 PHP
解析php中const与define的应用区别
2013/06/18 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
对比分析json及XML
2014/11/28 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
详解JS预解析原理
2020/06/16 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
python 判断是否为正小数和正整数的实例
2017/07/23 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
多重CSS背景动画实现方法示例
2014/04/04 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
C#面试题
2016/05/06 面试题
论群众路线学习心得体会
2014/10/31 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书