📅  最后修改于: 2023-12-03 15:36:13.802000             🧑  作者: Mango
Jimp JS 是一个纯 JavaScript 写的图像处理库,支持图像裁剪、缩放、旋转、加文字等操作。如果你需要将处理好的图像输出为二进制数据,可以使用 Jimp 的 getBuffer()
方法获取图像的缓冲区数据。
你需要先安装 Jimp JS,这可以通过 npm 包管理器完成:
npm install jimp
要获取 Jimp 图像的缓冲区数据,首先需要创建一个 Jimp 图像实例。可以从本地文件、缓冲区数据、URL 地址等方式创建 Jimp 图像。例如,以下代码从本地文件创建一个 640x480 的图像:
const Jimp = require('jimp');
Jimp.read('test.png', (err, img) => {
if (err) throw err;
img.resize(640, 480) // 缩放到 640x480
.quality(80) // 降低图像质量,减小文件大小
.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
if (err) throw err;
// 处理缓冲区数据
})
});
在 Jimp 实例对象上调用 getBuffer()
方法可以获取图像的缓冲区数据,此方法需要传递两个参数:
'image/jpeg'
、'image/png'
、'image/bmp'
等。err
和 buffer
,分别表示错误对象和缓冲区数据。以下是一个获取 PNG 格式图像缓冲区数据的示例:
img.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
if (err) throw err;
// 处理缓冲区数据
});
使用同样的方式可以获取其他格式类型的图像缓冲区数据,如 JPEG 和 BMP:
// 获取 JPEG 格式缓冲区数据
img.getBuffer(Jimp.MIME_JPEG, (err, buffer) => {
if (err) throw err;
// 处理缓冲区数据
});
// 获取 BMP 格式缓冲区数据
img.getBuffer(Jimp.MIME_BMP, (err, buffer) => {
if (err) throw err;
// 处理缓冲区数据
});
获取到的缓冲区数据可以用于写入本地文件、上传到云存储、从浏览器下载等操作。以将图像缩放并保存为本地文件为例:
const fs = require('fs'); // Node.js 内置模块
img.resize(640, 480) // 缩放到 640x480
.quality(80)
.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
if (err) throw err;
fs.writeFile('output.png', buffer, err => {
if (err) throw err;
console.log('File saved!');
});
});
以上代码将缩放后的 PNG 格式图像保存为本地文件 output.png
。
从 Jimp JS 获取缓冲区数据是将图像处理后输出的重要步骤,在处理完图像后,你可以将缓冲区数据用于硬盘文件的保存、网络传输、浏览器下载等操作。