# gif图片生成

用于创建gif文件,测试demo支持图片剪切,显示速率调整等功能

# 依赖

npm i gifencoder
npm i canvas
1
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

# 测试服务

启动 node-server