# gif图片生成
用于创建gif文件,测试demo
支持图片剪切,显示速率调整等功能
# 依赖
npm i gifencoder
npm i canvas
1
2
2
# 基础
const GIFEncoder = require('gifencoder')
const { createCanvas, loadImage } = require('canvas')
const imgs = ['1.png', '2.png']
const encoder = new GIFEncoder(w, h)
encoder.createReadStream().pipe(fileName) // 创建
encoder.start()
encoder.setRepeat(r) // 0 for repeat, -1 for no-repeat
// 创建画布
const canvas = createCanvas(w, h)
const ctx = canvas.getContext('2d')
await Promise
.all(imgs.map(img => loadImage(img)))
.then(arr => {
arr.forEach((image, index) => {
ctx.drawImage(image, 0, 0, w, h)
encoder.setDelay(delay) // frame delay in ms
encoder.setQuality(quatity) // image quality. 10 is default
encoder.addFrame(ctx) // 添加帧
})
// 接触gif创建
encoder.finish()
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 测试服务
启动 node-server