生成GIF动画的JS库:gif.js
jopen
11年前
gif.js 是一个GIF编码库,可用于直接在中浏览器生成GIF图片。使用typed arrays和web workers 在后台渲染每一帧,它真的很快!
示例 - http://jnordberg.github.io/gif.js/
可工作在支持: Web Workers, File API 和 Typed Arrays的浏览器中。
经测试支持:
- Google Chrome
- Firefox 17
- Safari 6
- Internet Explorer 10
- Mobile Safari iOS 6
用法
Include gif.js found in dist/ in your page. Also make sure to have gif.worker.js in the same location.
var gif = new GIF({ workers: 2, quality: 10 }); // add an image element gif.addFrame(imageElement); // or a canvas element gif.addFrame(canvasElement, {delay: 200}); // or copy the pixels from a canvas context gif.addFrame(ctx, {copy: true}); gif.on('finished', function(blob) { window.open(URL.createObjectURL(blob)); }); gif.render(); 选项
Options can be passed to the constructor or using the setOptions method.
| Name | Default | Description |
|---|---|---|
| repeat | 0 | repeat count, -1 = no repeat, 0 = forever |
| quality | 10 | pixel sample interval, lower is better |
| workers | 2 | number of web workers to spawn |
| workerScript | gif.worker.js | url to load worker script from |
| background | #fff | background color where source image is transparent |
| width | null | output image width |
| height | null | output image height |
| transparent | null | transparent hex color, 0x00FF00 = green |
If width or height is null image size will be deteremined by first frame added.
addFrame options
| Name | Default | Description |
|---|---|---|
| delay | 500 | frame delay |
| copy | false | copy the pixel data |