{"_id":"gif-encoder","_rev":"398784","name":"gif-encoder","description":"Streaming GIF encoder","dist-tags":{"latest":"0.7.2"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"time":{"modified":"2021-08-04T04:23:30.000Z","created":"2013-11-11T13:12:59.922Z","0.7.2":"2018-11-02T20:57:31.408Z","0.7.1":"2018-09-15T02:41:11.843Z","0.7.0":"2018-09-15T02:32:22.893Z","0.6.1":"2017-11-14T07:48:06.574Z","0.6.0":"2016-10-24T08:52:57.056Z","0.5.0":"2016-07-06T09:13:07.362Z","0.4.3":"2016-07-06T08:58:54.825Z","0.4.2":"2016-07-06T08:58:17.206Z","0.4.1":"2013-11-21T11:55:41.621Z","0.4.0":"2013-11-12T10:53:18.650Z","0.3.0":"2013-11-12T10:13:09.845Z","0.2.0":"2013-11-11T14:41:16.748Z","0.1.0":"2013-11-11T14:00:11.870Z","0.0.3":"2013-11-11T13:28:30.040Z","0.0.2":"2013-11-11T13:12:59.922Z"},"users":{"yolk":true},"author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"versions":{"0.7.2":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.7.2","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 6.0.0"},"scripts":{"test":"npm run test-interface && npm run test-performance","test-interface":"mocha test/gif-encoder_test.js","test-performance":"mocha test/gif-encoder_benchmark.js"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"async":"~0.2.9","foundry":"~4.3.2","foundry-release-git":"~2.0.2","foundry-release-npm":"~2.0.2","get-pixels":"~1.0.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","mocha":"~1.11.0","ndarray-fill":"~1.0.1","zeros":"~1.0.0"},"keywords":["gif","encode","encoder"],"foundry":{"releaseCommands":["foundry-release-git","foundry-release-npm"]},"gitHead":"f26f404e0445a43723d339a84ea5d64df6d1002c","_id":"gif-encoder@0.7.2","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"dist":{"shasum":"7ca204b61691fc017409a32ec341621400bc1d79","size":21140,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.7.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.7.2.tgz"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gif-encoder_0.7.2_1541192251243_0.47280923195027147"},"_hasShrinkwrap":false,"publish_time":1541192251408,"_cnpm_publish_time":1541192251408},"0.7.1":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.7.1","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 6.0.0"},"scripts":{"test":"npm run test-interface && npm run test-performance","test-interface":"mocha test/gif-encoder_test.js","test-performance":"mocha test/gif-encoder_benchmark.js"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"async":"~0.2.9","foundry":"~4.3.2","foundry-release-git":"~2.0.2","foundry-release-npm":"~2.0.2","get-pixels":"~1.0.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","mocha":"~1.11.0","ndarray-fill":"~1.0.1","zeros":"~1.0.0"},"keywords":["gif","encode","encoder"],"foundry":{"releaseCommands":["foundry-release-git","foundry-release-npm"]},"gitHead":"7cb88cdfa69b97d1a1555a8ceae732965aaf3a71","_id":"gif-encoder@0.7.1","_npmVersion":"5.8.0","_nodeVersion":"6.10.3","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"dist":{"shasum":"1d0825590c48e6501bb7b7a6322aa395c0bfb0d7","size":21115,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.7.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.7.1.tgz"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gif-encoder_0.7.1_1536979271633_0.5036347682392894"},"_hasShrinkwrap":false,"publish_time":1536979271843,"_cnpm_publish_time":1536979271843},"0.7.0":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.7.0","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.10.0"},"scripts":{"test":"npm run test-interface && npm run test-performance","test-interface":"mocha test/gif-encoder_test.js","test-performance":"mocha test/gif-encoder_benchmark.js"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"async":"~0.2.9","foundry":"~4.3.2","foundry-release-git":"~2.0.2","foundry-release-npm":"~2.0.2","get-pixels":"~1.0.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","mocha":"~1.11.0","ndarray-fill":"~1.0.1","zeros":"~1.0.0"},"keywords":["gif","encode","encoder"],"foundry":{"releaseCommands":["foundry-release-git","foundry-release-npm"]},"gitHead":"d797d0eec9de4b684e8ef7f8e4e7fecf70d28630","_id":"gif-encoder@0.7.0","_npmVersion":"5.8.0","_nodeVersion":"6.10.3","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"dist":{"shasum":"b7e3f65ed61dc9d69b503ce88d993c817984a82c","size":21096,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.7.0.tgz"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gif-encoder_0.7.0_1536978742772_0.7119767768151251"},"_hasShrinkwrap":false,"publish_time":1536978742893,"_cnpm_publish_time":1536978742893},"0.6.1":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.6.1","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.10.0"},"scripts":{"test":"npm run test-interface && npm run test-performance","test-interface":"mocha test/gif-encoder_test.js","test-performance":"mocha test/gif-encoder_benchmark.js"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"async":"~0.2.9","foundry":"~4.3.2","foundry-release-git":"~2.0.2","foundry-release-npm":"~2.0.2","get-pixels":"~1.0.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","mocha":"~1.11.0","ndarray-fill":"~1.0.1","zeros":"~1.0.0"},"keywords":["gif","encode","encoder"],"foundry":{"releaseCommands":["foundry-release-git","foundry-release-npm"]},"gitHead":"7e097d0d276484746fa3cfe8f0b58b80f28383a3","_id":"gif-encoder@0.6.1","_shasum":"19a31f91f3218b21d58c236f8039f5f49826697e","_from":".","_npmVersion":"2.15.12","_nodeVersion":"7.10.0","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"dist":{"shasum":"19a31f91f3218b21d58c236f8039f5f49826697e","size":20540,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.6.1.tgz"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gif-encoder-0.6.1.tgz_1510645686460_0.4079819479957223"},"directories":{},"publish_time":1510645686574,"_hasShrinkwrap":false,"_cnpm_publish_time":1510645686574},"0.6.0":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.6.0","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.10.0"},"scripts":{"test":"npm run test-interface && npm run test-performance","test-interface":"mocha test/gif-encoder_test.js","test-performance":"mocha test/gif-encoder_benchmark.js"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"async":"~0.2.9","foundry":"~4.3.2","foundry-release-git":"~2.0.2","foundry-release-npm":"~2.0.2","get-pixels":"~1.0.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","mocha":"~1.11.0","ndarray-fill":"~1.0.1","zeros":"~1.0.0"},"keywords":["gif","encode","encoder"],"foundry":{"releaseCommands":["foundry-release-git","foundry-release-npm"]},"gitHead":"7811817759caa423b051567976e779d4b6a2ef92","_id":"gif-encoder@0.6.0","_shasum":"d370a3d64da12841dade0b5b612871dd88295b3e","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.5.0","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"dist":{"shasum":"d370a3d64da12841dade0b5b612871dd88295b3e","size":20523,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.6.0.tgz"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gif-encoder-0.6.0.tgz_1477299176790_0.47980570257641375"},"directories":{},"publish_time":1477299177056,"_cnpm_publish_time":1477299177056,"_hasShrinkwrap":false},"0.5.0":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.5.0","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.10.0"},"scripts":{"test":"npm run test-interface && npm run test-performance","test-interface":"mocha test/gif-encoder_test.js","test-performance":"mocha test/gif-encoder_benchmark.js"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"async":"~0.2.9","foundry":"~4.3.2","foundry-release-git":"~2.0.2","foundry-release-npm":"~2.0.2","get-pixels":"~1.0.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","mocha":"~1.11.0"},"keywords":["gif","encode","encoder"],"foundry":{"releaseCommands":["foundry-release-git","foundry-release-npm"]},"gitHead":"bd40f03620235e4c4e9f08612537c7d7dcd60f4e","_id":"gif-encoder@0.5.0","_shasum":"4de4c95ba3955d3e92665c75b545861830c0616b","_from":".","_npmVersion":"2.15.3","_nodeVersion":"4.4.3","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"dist":{"shasum":"4de4c95ba3955d3e92665c75b545861830c0616b","size":19840,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.5.0.tgz"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gif-encoder-0.5.0.tgz_1467796384945_0.4543032709043473"},"directories":{},"publish_time":1467796387362,"_cnpm_publish_time":1467796387362,"_hasShrinkwrap":false},"0.4.3":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.4.3","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.8.0"},"scripts":{"test":"npm run test-interface && npm run test-performance","test-interface":"mocha test/gif-encoder_test.js","test-performance":"mocha test/gif-encoder_benchmark.js"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"async":"~0.2.9","foundry":"~4.3.2","foundry-release-git":"~2.0.2","foundry-release-npm":"~2.0.2","get-pixels":"~1.0.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","mocha":"~1.11.0"},"keywords":["gif","encode","encoder"],"foundry":{"releaseCommands":["foundry-release-git","foundry-release-npm"]},"gitHead":"2d2239f40bd342b2ea674b73f7054a3fd2bc0b98","_id":"gif-encoder@0.4.3","_shasum":"8a2b4fe8ca895a48e3a0b6cbb340a0a6a3571899","_from":".","_npmVersion":"2.15.3","_nodeVersion":"4.4.3","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"dist":{"shasum":"8a2b4fe8ca895a48e3a0b6cbb340a0a6a3571899","size":19768,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.4.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.4.3.tgz"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gif-encoder-0.4.3.tgz_1467795532296_0.1249255531001836"},"directories":{},"publish_time":1467795534825,"_cnpm_publish_time":1467795534825,"_hasShrinkwrap":false},"0.4.2":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.4.2","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.8.0"},"scripts":{"test":"npm run test-interface && npm run test-performance","test-interface":"mocha test/gif-encoder_test.js","test-performance":"mocha test/gif-encoder_benchmark.js"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"async":"~0.2.9","foundry":"~4.3.2","foundry-release-git":"~2.0.2","foundry-release-npm":"~2.0.2","get-pixels":"~1.0.1","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","mocha":"~1.11.0"},"keywords":["gif","encode","encoder"],"foundry":{"releaseCommands":["foundry-release-git","foundry-release-npm"]},"gitHead":"ee754cf9ab458e1bde9a250f9b10e5b22d38bef1","_id":"gif-encoder@0.4.2","_shasum":"ee6cf3c6e16a1ad76c8e2cacc1a29681ae3d4282","_from":".","_npmVersion":"2.15.3","_nodeVersion":"4.4.3","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"dist":{"shasum":"ee6cf3c6e16a1ad76c8e2cacc1a29681ae3d4282","size":19722,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.4.2.tgz"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/gif-encoder-0.4.2.tgz_1467795494679_0.9562146440148354"},"directories":{},"publish_time":1467795497206,"_cnpm_publish_time":1467795497206,"_hasShrinkwrap":false},"0.4.1":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.4.1","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.8.0"},"scripts":{"test":"npm run test-interface && npm run test-performance","test-interface":"mocha test/gif-encoder_test.js","test-performance":"mocha test/gif-encoder_benchmark.js"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"mocha":"~1.11.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","async":"~0.2.9","get-pixels":"~1.0.1"},"keywords":["gif","encode","encoder"],"readmeFilename":"README.md","_id":"gif-encoder@0.4.1","dist":{"shasum":"0ec2192b35b91e50073258354b13d3e5165f106b","size":19722,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.4.1.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"publish_time":1385034941621,"_cnpm_publish_time":1385034941621,"_hasShrinkwrap":false},"0.4.0":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.4.0","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"mocha":"~1.11.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","async":"~0.2.9"},"keywords":["gif","encode","encoder"],"readmeFilename":"README.md","_id":"gif-encoder@0.4.0","dist":{"shasum":"4f4488f3fa14536f6b955578c3c99c0924c3349f","size":18507,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"publish_time":1384253598650,"_cnpm_publish_time":1384253598650,"_hasShrinkwrap":false},"0.3.0":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.3.0","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha"},"dependencies":{"readable-stream":"~1.1.9"},"devDependencies":{"mocha":"~1.11.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0","async":"~0.2.9"},"keywords":["gif","encode","encoder"],"readmeFilename":"README.md","_id":"gif-encoder@0.3.0","dist":{"shasum":"d1d8788a039913a36db8248220254e0ec2a2f816","size":18631,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.3.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"publish_time":1384251189845,"_cnpm_publish_time":1384251189845,"_hasShrinkwrap":false},"0.2.0":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.2.0","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha"},"dependencies":{},"devDependencies":{"mocha":"~1.11.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0"},"keywords":["gif","encode","encoder"],"readmeFilename":"README.md","_id":"gif-encoder@0.2.0","dist":{"shasum":"79f6ad9297a822cff55e389450a7de6bd0a275d5","size":14776,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.2.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"publish_time":1384180876748,"_cnpm_publish_time":1384180876748,"_hasShrinkwrap":false},"0.1.0":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.1.0","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha"},"dependencies":{},"devDependencies":{"mocha":"~1.11.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0"},"keywords":["gif","encode","encoder"],"readmeFilename":"README.md","_id":"gif-encoder@0.1.0","dist":{"shasum":"9991cac98f0e40839bbccd41d84c0fa6be31b653","size":14482,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.1.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"publish_time":1384178411870,"_cnpm_publish_time":1384178411870,"_hasShrinkwrap":false},"0.0.3":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.0.3","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha"},"dependencies":{},"devDependencies":{"mocha":"~1.11.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0"},"keywords":["gif","encode","encoder"],"readmeFilename":"README.md","_id":"gif-encoder@0.0.3","dist":{"shasum":"f629421e87bf760f0a6ed7d7dad06509cb8cb1c4","size":14041,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.0.3.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"publish_time":1384176510040,"_cnpm_publish_time":1384176510040,"_hasShrinkwrap":false},"0.0.2":{"name":"gif-encoder","description":"Streaming GIF encoder","version":"0.0.2","homepage":"https://github.com/twolfson/gif-encoder","author":{"name":"Todd Wolfson","email":"todd@twolfson.com","url":"http://twolfson.com/"},"repository":{"type":"git","url":"git://github.com/twolfson/gif-encoder.git"},"bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"},"licenses":[{"type":"MIT","url":"https://github.com/twolfson/gif-encoder/blob/master/LICENSE-MIT"}],"main":"lib/GIFEncoder","engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha"},"dependencies":{},"devDependencies":{"mocha":"~1.11.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.6.0","grunt-contrib-watch":"~0.4.0"},"keywords":["gif","encode","encoder"],"readmeFilename":"README.md","_id":"gif-encoder@0.0.2","dist":{"shasum":"e0c969df21b92fdc31f8a52180804b773bca0497","size":13672,"noattachment":false,"key":"/gif-encoder/-/gif-encoder-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/gif-encoder/download/gif-encoder-0.0.2.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"twolfson","email":"todd@twolfson.com"},"maintainers":[{"name":"twolfson","email":"todd@twolfson.com"}],"directories":{},"publish_time":1384175579922,"_cnpm_publish_time":1384175579922,"_hasShrinkwrap":false}},"readme":"# gif-encoder [![Build status](https://travis-ci.org/twolfson/gif-encoder.png?branch=master)](https://travis-ci.org/twolfson/gif-encoder)\n\nStreaming [GIF][] encoder\n\n[GIF]: http://en.wikipedia.org/wiki/Graphics_Interchange_Format\n\nThis is built as part of the [gifsockets][] project. It is forked from [gif.js][] to allow for a streaming API and performance optimization.\n\n[gifsockets]: https://github.com/twolfson/gifsockets-server\n\n## Getting Started\nInstall the module with: `npm install gif-encoder`\n\n```js\n// Create a 10 x 10 gif\nvar GifEncoder = require('gif-encoder');\nvar gif = new GifEncoder(10, 10);\n\n// using an rgba array of pixels [r, g, b, a, ... continues on for every pixel]\n// This can be collected from a <canvas> via context.getImageData(0, 0, width, height).data\nvar pixels = [0, 0, 0, 255/*, ...*/];\n\n// Collect output\nvar file = require('fs').createWriteStream('img.gif');\ngif.pipe(file);\n\n// Write out the image into memory\ngif.writeHeader();\ngif.addFrame(pixels);\n// gif.addFrame(pixels); // Write subsequent rgba arrays for more frames\ngif.finish();\n```\n\n## Documentation\n`gif-encoder` exports `GifEncoder`, a constructor function which extends `readable-stream@~1.1.9`. This means you can use any `streams1`/`streams2` functionality. I will re-iterate what this means below.\n\n```js\n// streams1\nvar gif = new GifEncoder(10, 10);\ngif.on('data', console.log);\ngif.on('end', process.exit);\n\n// streams2\nvar gif = new GifEncoder(10, 10);\ngif.on('readable', function () {\n  console.log(gif.read());\n});\n```\n\n### `new GifEncoder(width, height, [options])`\nConstructor for a new `GifEncoder`\n\n- width `Number` - Width, in pixels, of the `GIF` to output\n- height `Number` - Height, in pixels, of the `GIF` to output\n- options `Object` - Optional container for any options\n    - highWaterMark `Number` - Number, in bytes, to store in internal buffer. Defaults to 64kB.\n\n**NEVER CALL `.removeAllListeners()`. NO DATA EVENTS WILL BE ABLE TO EMIT.**\n\n> We implement the GIF89a specification which can be found at\n>\n> http://www.w3.org/Graphics/GIF/spec-gif89a.txt\n\n### Events\n#### Event: `data`\n`function (buffer) {}`\n\nEmits a [`Buffer`][] containing either header bytes, frame bytes, or footer bytes.\n\n[`Buffer`]: http://nodejs.org/api/buffer.html\n\n#### Event: `end`\n`function () {}`\n\nSignifies end of the encoding has been reached. This will be emitted once `.finish()` is called.\n\n#### Event: `error`\n`function (error) {}`\n\nEmits an `Error` when internal buffer is exceeded. This occurs when you do not `read` (either via `.on('data')` or `.read()`) and we cannot flush prepared data.\n\n> If you have a very large GIF, you can update [`options.highWaterMark`][Constructor] via the [Constructor][].\n\n[Constructor]: #constructor\n\n#### Event: `readable`\n`function () {}`\n\nEmits when the stream is ready to be `.read()` from.\n\n#### Event: `writeHeader#start/stop`\n`function () {}`\n\nEmits when at the start and end of `.writeHeader()`.\n\n#### Event: `frame#start/stop`\n`function () {}`\n\nEmits when at the start and end of `.addFrame()`\n\n#### Event: `finish#start/stop`\n`function () {}`\n\nEmits when at the start and end of `.finish()`\n\n### Settings\n#### `gif.setDelay(ms)`\nSet milliseconds to wait between frames\n\n- ms `Number` - Amount of milliseconds to delay between frames\n\n#### `setFrameRate(framesPerSecond)`\nSet delay based on amount of frames per second. Cannot be used with `gif.setDelay`.\n\n- framesPerSecond `Number` - Amount of frames per second\n\n#### `setDispose(disposalCode)`\nSet the disposal code\n\n- disposalCode `Number` - Alters behavior of how to render between frames\n    - If no transparent color has been set, defaults to 0.\n    - Otherwise, defaults to 2.\n\n```\nValues :    0 -   No disposal specified. The decoder is\n                  not required to take any action.\n            1 -   Do not dispose. The graphic is to be left\n                  in place.\n            2 -   Restore to background color. The area used by the\n                  graphic must be restored to the background color.\n            3 -   Restore to previous. The decoder is required to\n                  restore the area overwritten by the graphic with\n                  what was there prior to rendering the graphic.\n         4-7 -    To be defined.\n```\n\nTaken from http://www.w3.org/Graphics/GIF/spec-gif89a.txt\n\n#### `setRepeat(n)`\nSets amount of times to repeat `GIF`\n\n- n `Number`\n    - If `n` is -1, play once.\n    - If `n` is 0, loop indefinitely.\n    - If `n` is a positive number, loop `n` times.\n\n#### `setTransparent(color)`\nDefine the color which represents transparency in the `GIF`.\n\n- color `Hexadecimal Number` - Color to represent transparent background\n  - Example: `0x00FF00`\n\n#### `setQuality(quality)`\nSet the quality (computational/performance trade-off).\n\n- quality `Positive number`\n    - 1 is best colors, worst performance.\n    - 20 is suggested maximum but there is no limit.\n    - 10 is the default, provided an even trade-off.\n\n### Input/output\n#### `read([size])`\nRead out `size` bytes or until the end of the buffer. This is implemented by `readable-stream`.\n\n- size `Number` - Optional number of bytes to read out\n\n#### `writeHeader()`\nWrite out header bytes. We are following `GIF89a` specification.\n\n#### `addFrame(imageData, options)`\nWrite out a new frame to the GIF.\n\n- imageData `Array` - Array of pixels for the new frame. It should follow the sequence of `r, g, b, a` and be `4 * height * width` in length.\n    - If used with the options `palette` and `indexedPixels`, then this becomes the index in the palette (e.g. `0` for `color #0`)\n- options `Object` - Optional container for options\n    - palette `Array` - Array of pixels to use as palette for the frame. It should follow the sequence of `r, g, b, a`\n        - At the moment, this must be used with `options.indexedPixels`\n    - indexedPixels `Boolean` -  Indicator to treat `imageData` as RGBA values (`false`) or indicies in `palette` (`true`)\n\n#### `finish()`\nWrite out footer bytes.\n\n### Low-level\nFor performance in [gifsockets][], we needed to open up some lower level methods for fancy tricks.\n\n**Don't use these unless you know what you are doing.**\n\n#### `flushData()`\nWe have a secondary internal buffer that collects each byte from `writeByte`. This is to prevent create a new `Buffer` and `data` event for *every byte of data*.\n\nThis method empties the internal buffer and pushes it out to the `stream` buffer for reading.\n\n#### `pixels`\nInternal store for `imageData` passed in by `addFrame`.\n\n#### `analyzeImage(imageData, options)`\nFirst part of `addFrame`; runs `setImagePixels(removeAlphaChannel(imageData))` and runs `analyzePixels()`.\n\n- imageData `Array` - Same as that in [`addFrame`][]\n- options `Object` - Optional container for options\n    - indexedPixels `Boolean` -  Indicator to treat `imageData` as RGBA values (`false`) or indicies in `palette` (`true`)\n\n[`addFrame`]: #addframeimagedata\n\n#### `removeAlphaChannel(imageData)`\nReduces `imageData` into a `Uint8Array` of length `3 * width * height` containing sequences of `r, g, b`; removing the alpha channel.\n\n- imageData `Array` - Same as that in [`addFrame`][]; array containing `r, g, b, a` sequences.\n\n#### `setImagePixels(pixels)`\nSave `pixels` as `this.pixels` for image analysis.\n\n- pixels `Array` - Same as `imageData` from [`addFrame`][]\n    - **`GifEncoder` will mutate the original data.**\n\n#### `setImagePalette(palette)`\nSave `palette` as `this.userPalette` for frame writing.\n\n- palette `Array` - Same as `options.palette` from [`addFrame`][]\n\n#### `writeImageInfo()`\nSecond part of `addFrame`; behavior varies on if it is the first frame or following frame.\n\nIn either case, it writes out a bunch of bytes about the image (e.g. palette, color tables).\n\n#### `outputImage()`\nThird part of `addFrame`; encodes the analyzed/indexed pixels for the GIF format.\n\n## Donating\nSupport this project and [others by twolfson][twolfson-projects] via [donations][twolfson-support-me].\n\n<http://twolfson.com/support-me>\n\n[twolfson-projects]: http://twolfson.com/projects\n[twolfson-support-me]: http://twolfson.com/support-me\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via [grunt](https://github.com/gruntjs/grunt) and test via `npm test`.\n\n## UNLICENSE\nAs of Nov 11 2013, Todd Wolfson has released all code differences since initial fork from [gif.js][] to the public domain.\n\nThese differences have been released under the [UNLICENSE][].\n\n[UNLICENSE]: UNLICENSE\n\nAt the [gif.js][] time of forking, [gif.js][] was using the [MIT license][].\n\n[gif.js]: https://github.com/jnordberg/gif.js/tree/faee238491302de05a1ed05e4fbe562738a76310\n\n[MIT license]: https://github.com/jnordberg/gif.js/tree/faee238491302de05a1ed05e4fbe562738a76310#license\n","_attachments":{},"homepage":"https://github.com/twolfson/gif-encoder","bugs":{"url":"https://github.com/twolfson/gif-encoder/issues"}}