一直以为图片转为 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相关推荐

  1. php 图片文件转base64编码格式,php如何将图片转为base64编码格式

    php将图片转为base64编码格式的方法:首先读取图片流:然后利用[base64_encode]函数进行编码格式转换即可. PHP保存Base64图片base64_decode的问题 PHP对Bas ...

  2. java返回图片base64_java将图片转为base64返回给前端

    本文实例为大家分享了java将图片转为base64返回给前端的具体代码,供大家参考,具体内容如下 一.controller端代码 @RequestMapping(value = "/capt ...

  3. 为什么要将图片转为base64格式

    图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址; 1. 提升性能: 网页上的每一个图片,都是需要消耗一个 http 请求下载而来的, 图片的下载始终都要向服 ...

  4. Java将图片转为Base64

    Java将图片转为Base64 import net.coobird.thumbnailator.Thumbnails; import org.apache.commons.codec.binary. ...

  5. java 上传图片转base64_java将图片转为base64返回给前端

    本文实例为大家分享了java将图片转为base64返回给前端的具体代码,供大家参考,具体内容如下 一.controller端代码 @RequestMapping(value = "/capt ...

  6. 使用canvas.toDataURL把图片转为base64格式

    使用canvas.toDataURL把图片转为base64格式 function getBase64(url) {//通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 c ...

  7. php将上传的图片转为base64,html5实现把上传的图片转成base64编码在显示(代码实例)...

    本章给大家介绍html5实现把上传的图片转成base64编码在显示(代码实例).有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 首先我们来详细的看一看base64编码: 什么是bas ...

  8. Java处理富文本编辑器的图片转为base64编码

    一.需求(场景) 后台(内网)通过富文本编辑器编辑的图文信息,需要在移动端(外网)展示,需要将内容中的图片的src的路径替换成base64编码的传递到前台. 二.思路 1.获取内容中的<img& ...

  9. 剪贴板中图片转为BASE64格式

    需求 将图片复制到剪贴板后,希望将图片快捷地转换为BASE64格式. 各种在线工具往往需要先将图片保存到本地,然后将本地文件上传.现在考虑将图片保存到本地这一步去掉,直接将图片从剪贴板粘贴到网页的某个 ...

最新文章

  1. python【数据结构与算法】倍增思想
  2. 终于编译好了qt的oracle驱动QOCI,连接成功!!!
  3. 并发insert情况下会发生重复的数据插入问题
  4. Java ObjectStreamClass lookup()方法与示例
  5. 中国互联网企业综合实力研究报告(2020)
  6. python 把txt变成字符串_如何通过 Python 如何写文件 ?
  7. Java类、实例的初始化顺序
  8. 消息中间件学习总结(15)——Apache RocketMQ 正式开源分布式事务消息
  9. JS对cookie进行操作
  10. 从大到小输出a、b、c(选择结构)
  11. 用 Python 实现植物大战僵尸代码!
  12. 程序员的底色(IDE color scheme、CLI 命令行界面)
  13. 【ML小结9】聚类分析--k均值聚类
  14. 白话空间统计三十:地统计学(1)起源
  15. 基于单片机的八路抢答器系统设计(#0402)
  16. 关于Id returned 1exit status的解决办法
  17. sim3在orbslam2与gis中的应用
  18. cocos2d-x 使用Box2d制作的台球游戏
  19. 一个留学生的自白:清华vsMIT
  20. 知来路方知去处。坎坷已过,一马平川后必看的经典!——2018最新倾斜摄影建模与无人机航拍影像处理完美配置解决方案!

热门文章

  1. 《大话数据结构》读书笔记-树
  2. 2017-4-6 四月生花,冷暖自知
  3. 孙武不夜城出新“招” 各路豪杰来热闹
  4. 明朝经典战役\明朝挽救历史狂澜\于谦人生最高点\北京保卫战
  5. 奶爸日记1 - 特殊的日子里
  6. Ubuntu常用磁盘工具Disks、GParted和系统清理应用Cleaner
  7. GC8870国产低成本替代TI的DRV8870 3.6A 刷式直流电机驱动器(PWM 控制)
  8. mac笔记本怎么外接显示屏_苹果电脑如何外接显示器_苹果电脑外接显示器设置方法-win7之家...
  9. Cocos实战案例:高手解析《捕鱼达人3》怎样玩3D
  10. 农业科普:智慧果园种植科研(二)