Nodejs 使用 Buffer 将图片转为 base64
一直以为图片转为 base64 很复杂,结果今天看了下 Docusaurus 的 plugin-ideal-image
插件源码,居然只要一行代码就完事了:
const toBase64 = (extMimeType: string, data: Buffer): string =>`data:${extMimeType};base64,${data.toString('base64')}`;
这里说明下,这个插件使用 sharp
对图片进行处理,最后返回的是一个 Buffer
实例,我们先来了解下 Buffer
。首先 Buffer
实际上就是一个固定长度的字节类型数组 byte[]
,可以通过以下方式创建 Buffer
:
// 创建长度为 10 的 Buffer,每个元素的默认值为 0
const buf1 = Buffer.alloc(10);// 创建长度为 10 的 Buffer
// 每个元素填充为 1
const buf2 = Buffer.alloc(10, 1);// 通过数组创建 Buffer
const buf4 = Buffer.from([1, 2, 3]);// 每个元素会根据 `(value & 255)` 规则转为 0-255 中的值
// 下面这个会得到 [1, 1, 1, 1]
const buf5 = Buffer.from([257, 257.5, -255, '1']);// 通过字符串创建 Buffer
const buf6 = Buffer.from('tést');// 可通过第二个参数指定编码规则,默认 utf8
const buf7 = Buffer.from('tést', 'latin1');
在 Nodejs 中,Buffer 是全局对象,不需要手动导入模块就能使用
在 Buffer
实例上有一个 toString
方法,这个方法可以根据传入的编码规则将 Buffer
转为字符串:
const buf = Buffer.from('hello world', 'utf8');// 默认 utf8
buf.toString(); // hello world
buf.toString('hex'); // 68656c6c6f20776f726c64
buf.toString('base64'); // aGVsbG8gd29ybGQ=
按照这个思路,我们就可以使用 Buffer 将图片转为 Base64。不过如何创建 Buffer 呢,我们可以使用 fs
模块读取文件,然后调用 Buffer.from
创建 Buffer:
const http = require('node:http');
const fs = require('node:fs');
const path = require('node:path');http.createServer((req, res) => {const readable = fs.readFileSync(path.join(__dirname, './2333.png'), 'binary');res.end(Buffer.from(readable, 'binary').toString('base64'));
}).listen(3000);
参考
Buffer - Node.js 官方文档
Nodejs 使用 Buffer 将图片转为 base64相关推荐
- php 图片文件转base64编码格式,php如何将图片转为base64编码格式
php将图片转为base64编码格式的方法:首先读取图片流:然后利用[base64_encode]函数进行编码格式转换即可. PHP保存Base64图片base64_decode的问题 PHP对Bas ...
- java返回图片base64_java将图片转为base64返回给前端
本文实例为大家分享了java将图片转为base64返回给前端的具体代码,供大家参考,具体内容如下 一.controller端代码 @RequestMapping(value = "/capt ...
- 为什么要将图片转为base64格式
图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址; 1. 提升性能: 网页上的每一个图片,都是需要消耗一个 http 请求下载而来的, 图片的下载始终都要向服 ...
- Java将图片转为Base64
Java将图片转为Base64 import net.coobird.thumbnailator.Thumbnails; import org.apache.commons.codec.binary. ...
- java 上传图片转base64_java将图片转为base64返回给前端
本文实例为大家分享了java将图片转为base64返回给前端的具体代码,供大家参考,具体内容如下 一.controller端代码 @RequestMapping(value = "/capt ...
- 使用canvas.toDataURL把图片转为base64格式
使用canvas.toDataURL把图片转为base64格式 function getBase64(url) {//通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 c ...
- php将上传的图片转为base64,html5实现把上传的图片转成base64编码在显示(代码实例)...
本章给大家介绍html5实现把上传的图片转成base64编码在显示(代码实例).有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 首先我们来详细的看一看base64编码: 什么是bas ...
- Java处理富文本编辑器的图片转为base64编码
一.需求(场景) 后台(内网)通过富文本编辑器编辑的图文信息,需要在移动端(外网)展示,需要将内容中的图片的src的路径替换成base64编码的传递到前台. 二.思路 1.获取内容中的<img& ...
- 剪贴板中图片转为BASE64格式
需求 将图片复制到剪贴板后,希望将图片快捷地转换为BASE64格式. 各种在线工具往往需要先将图片保存到本地,然后将本地文件上传.现在考虑将图片保存到本地这一步去掉,直接将图片从剪贴板粘贴到网页的某个 ...
最新文章
- python【数据结构与算法】倍增思想
- 终于编译好了qt的oracle驱动QOCI,连接成功!!!
- 并发insert情况下会发生重复的数据插入问题
- Java ObjectStreamClass lookup()方法与示例
- 中国互联网企业综合实力研究报告(2020)
- python 把txt变成字符串_如何通过 Python 如何写文件 ?
- Java类、实例的初始化顺序
- 消息中间件学习总结(15)——Apache RocketMQ 正式开源分布式事务消息
- JS对cookie进行操作
- 从大到小输出a、b、c(选择结构)
- 用 Python 实现植物大战僵尸代码!
- 程序员的底色(IDE color scheme、CLI 命令行界面)
- 【ML小结9】聚类分析--k均值聚类
- 白话空间统计三十:地统计学(1)起源
- 基于单片机的八路抢答器系统设计(#0402)
- 关于Id returned 1exit status的解决办法
- sim3在orbslam2与gis中的应用
- cocos2d-x 使用Box2d制作的台球游戏
- 一个留学生的自白:清华vsMIT
- 知来路方知去处。坎坷已过,一马平川后必看的经典!——2018最新倾斜摄影建模与无人机航拍影像处理完美配置解决方案!
热门文章
- 《大话数据结构》读书笔记-树
- 2017-4-6 四月生花,冷暖自知
- 孙武不夜城出新“招” 各路豪杰来热闹
- 明朝经典战役\明朝挽救历史狂澜\于谦人生最高点\北京保卫战
- 奶爸日记1 - 特殊的日子里
- Ubuntu常用磁盘工具Disks、GParted和系统清理应用Cleaner
- GC8870国产低成本替代TI的DRV8870 3.6A 刷式直流电机驱动器(PWM 控制)
- mac笔记本怎么外接显示屏_苹果电脑如何外接显示器_苹果电脑外接显示器设置方法-win7之家...
- Cocos实战案例:高手解析《捕鱼达人3》怎样玩3D
- 农业科普:智慧果园种植科研(二)