在nodejs环境里使用canvas和sharp生成图片

发布时间 2023-12-28 17:40:39作者: NAVYSUMMER

1.安装依赖包

npm install jsdom canvas

2.实例代码

const {JSDOM} = require('jsdom');
const {createCanvas} = require('canvas');

// 创建一个虚拟DOM环境
const dom = new JSDOM('<!DOCTYPE html><html><head></head><body></body></html>');
const window = dom.window;
const document = window.document;

// 在虚拟DOM环境中创建Canvas
const canvas = createCanvas(300, 200);
const context = canvas.getContext('2d');

// 在Canvas上绘制一些内容(这里绘制一个简单的红色矩形)
context.fillStyle = 'red';
context.fillRect(0, 0, 300, 200);

// 从Canvas获取Data URL
const dataUrl = canvas.toDataURL('image/png');

console.log('Data URL:', dataUrl);

// 可以将Data URL传递给其他地方进行处理,比如使用Sharp库转换为图像
// 以下是一个使用Sharp的示例
const sharp = require('sharp');

sharp(Buffer.from(dataUrl.split(',')[1], 'base64'))
    .toFile('output.png', (err, info) => {
        if (err) {
            console.error(err);
        } else {
            console.log('Image saved:', info);
        }
    });

3.运行测试

node test.js