{"_id":"@canvacord/gif","_rev":"4-aeb3a748bb341b59fd9f00f8cded55bf","name":"@canvacord/gif","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@canvacord/gif","version":"1.0.0","description":"GIF decoder/encoder for Canvacord","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc","test":"cd test && ts-node --files index.ts"},"repository":{"type":"git","url":"git+https://github.com/DevSnowflake/gif.git"},"keywords":["gif","canvacord","gifencoder","gifdecoder"],"author":{"name":"Snowflake107"},"license":"MIT","bugs":{"url":"https://github.com/DevSnowflake/gif/issues"},"homepage":"https://github.com/DevSnowflake/gif#readme","devDependencies":{"@napi-rs/canvas":"^0.0.6","@types/gif-encoder":"^0.7.0","@types/ndarray":"^1.0.9","@types/ndarray-ops":"^1.2.1","@types/node":"^15.3.0","@types/omggif":"^1.0.1","ts-node":"^9.1.1","typescript":"^4.2.4"},"dependencies":{"gif-encoder":"^0.7.2","ndarray":"^1.0.19","ndarray-ops":"^1.2.2","omggif":"^1.0.10","pngjs-nozlib":"^1.0.0"},"gitHead":"e265d658873471fa2dc546b5b14bcc514b39cd83","_id":"@canvacord/gif@1.0.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-rVsleI3Up11BVpDrpsHZLJH7T2HCjLhIqwG3+OgojjOvqzTVCOwlvcG57hfJzyi1x2uFJzxl1PCPUKbDK3xz4A==","shasum":"b776547daf280e8108d4d2d1833b080bcb0d96e5","tarball":"https://registry.npmjs.org/@canvacord/gif/-/gif-1.0.0.tgz","fileCount":12,"unpackedSize":12965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgolvrCRA9TVsSAnZWagAAcisQAKTBoYFFtvdqvObyYxXd\no7e8yS91Y9PbCDXWs1xYz7zHnP6TEP8Mr0EKaHs9zf1AAh4LnOR8/5abnUxy\nKrhw8wVuRr8spjB/3TpHtyuD5ZmL+yZVS6RtnFvecvracCcetsffcTQHEvQ0\nCkOi9eWwYbnwrTOsus9MTAL7pTWkwc/esyD421G6TbOCM8exw5i9KurPJ0j5\nALmX7ZqrDnZJ65HvNyQ6T/5DJEuDBl0z7sTr0Tj7KIcimHPteo4Wx0TIMl83\nEyjRpSv2lUOCDshOBkRXjYHvQGAbCYG2TzaKtLQoErxQodtgZJQ7dihYMMtD\nWaydrhrMMeHlF2nHX8hYnEwGiIbRQ2Nj2nMizgLfJyJ9jXlu8+h3ASzD0jCq\nUHrciCZa8LMCccupqBCqAIH1EPnk5T0Ynwx755HiJzXcGtwgwHz7SiqhOh81\nsC3lfv80Te9+MxHTO+LP3y53XFWiX2dBqdweRw7pU1PQ/oLOn2rxOVhDx0BF\nxq/a1Whr3LGewR9unNmAHAgIIWmv4xaLKlQdFXpsr5+oWyh/vFZvQT5/Gs9n\nUes2DMXMpkJcS/avcCQaoqqrTLSGXrpK0eX9/5kAyzh6m/9iOOT+cELfzRbK\nw81g3u0A1KVCh4tbqZhg/dVfkrDrg8/ESjsFxwB2jhmWGDHyWKErkSzssSVF\noW1S\r\n=1UcO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnJC0GePqyO88IJ4DmW8pauoae7JY8WoFwOzmT0gWgsgIhAPyGVjugql5Pz+fN/T4MJFF3rRmBKN/CCGW02UEy/h6i"}]},"_npmUser":{"name":"snowflake7","email":"mail2dynamite@gmail.com"},"directories":{},"maintainers":[{"name":"snowflake7","email":"mail2dynamite@gmail.com"},{"name":"zyrouge","email":"zyrouge@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gif_1.0.0_1621253098734_0.05624832478925468"},"_hasShrinkwrap":false},"1.0.1":{"name":"@canvacord/gif","version":"1.0.1","description":"GIF decoder/encoder for Canvacord","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc","test":"cd test && ts-node --files index.ts"},"repository":{"type":"git","url":"git+https://github.com/DevSnowflake/gif.git"},"keywords":["gif","canvacord","gifencoder","gifdecoder"],"author":{"name":"Snowflake107"},"license":"MIT","bugs":{"url":"https://github.com/DevSnowflake/gif/issues"},"homepage":"https://github.com/DevSnowflake/gif#readme","devDependencies":{"@napi-rs/canvas":"^0.0.6","@types/gif-encoder":"^0.7.0","@types/ndarray":"^1.0.9","@types/ndarray-ops":"^1.2.1","@types/node":"^15.3.0","@types/omggif":"^1.0.1","ts-node":"^9.1.1","typescript":"^4.2.4"},"dependencies":{"gif-encoder":"^0.7.2","ndarray":"^1.0.19","ndarray-ops":"^1.2.2","omggif":"^1.0.10","pngjs-nozlib":"^1.0.0"},"gitHead":"d980d0afab6e5131f6821e39f86300e071b42dbd","_id":"@canvacord/gif@1.0.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-3ISNsnuIchhxwK4ExupGJhWHVKqsNhq523IQG6Szz5KpKbXxUsUDjISuNtUQvXJ2r7zrIMgqKGMuiv0cTvoWMA==","shasum":"72fbc26de5089bb8dbd65648570cc00f174ef0d7","tarball":"https://registry.npmjs.org/@canvacord/gif/-/gif-1.0.1.tgz","fileCount":12,"unpackedSize":13226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgol8WCRA9TVsSAnZWagAA1RIP/ibFy1IVGP9jaQ29/L54\npo4haR1CP0WrYwRwAuNd72FBdGT9a3bpLJZratIUZOAPA40s54/sIeyuBbBS\nhG1T+Ynvj8aJSiNnUAO8zzsyNi0/YZSdejQO3fo8FbZr4r18EuCust2It54x\ncZ40HT8crNeul0bbmDt4fpi884+tR8ZcA+BIEid9F/eFtGM8/VhBOvdZiS98\nqRytgnw5/Bg90XKPfaJjKnQvdMmp2m6quxMTu5RilhIN8e29TyKZ6qvQx6Pc\npqF0Y3KWcynQMZYuplWnhlpzrwIN9EOIoYtqJ9cTG/sle1IK+hOJYy4/K8PF\nT/1hbQp5hiWYc2+77yxyRBI55pAj8Fp1TRPgK36fg6R1UQfoRNUqI2f3jmpD\nVC7lQMu7jPMqW0DhHwDqPXhWCU1V7ZB9/PEavUcJ73Nka53O7Ngxf2esPrDu\nGG6sZKcfXqwb/eWDVipHeBy74ISqUu3FwGxuCZXqhCx85oe97ZR5K/v0rDHP\nF0cC2Qj+gfXkROY094NAPDxYH7Jx4qjys6j/cNeH0hyq47gfQojw4THd3Ilv\nreNsIWGZfL4iyrunRjtplyZkHySrogOo7jJWBcHvmLcwNS9lSLVVphyt4mUC\nbCd7roZbRjxwflTl0Uos+6evw2fNz8oq1wsIDe5a2m+43nPNli+NCnRDW814\ngDEp\r\n=r7JZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXk3FbM/8Tfzzo+l/1zURtfLDEb2pL2GpfWAj9xg8xXwIhALGs5lz+9SgNiImGlQNjeBCsayGRuf9UPzlmidMGzOc9"}]},"_npmUser":{"name":"snowflake7","email":"mail2dynamite@gmail.com"},"directories":{},"maintainers":[{"name":"snowflake7","email":"mail2dynamite@gmail.com"},{"name":"zyrouge","email":"zyrouge@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gif_1.0.1_1621253910333_0.6489714561461015"},"_hasShrinkwrap":false},"1.0.2":{"name":"@canvacord/gif","version":"1.0.2","description":"GIF decoder/encoder for Canvacord","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc","test":"cd test && ts-node --files index.ts"},"repository":{"type":"git","url":"git+https://github.com/DevSnowflake/gif.git"},"keywords":["gif","canvacord","gifencoder","gifdecoder"],"author":{"name":"Snowflake107"},"license":"MIT","bugs":{"url":"https://github.com/DevSnowflake/gif/issues"},"homepage":"https://github.com/DevSnowflake/gif#readme","devDependencies":{"@napi-rs/canvas":"^0.0.6","@types/gif-encoder":"^0.7.0","@types/ndarray":"^1.0.9","@types/ndarray-ops":"^1.2.1","@types/node":"^15.3.0","@types/omggif":"^1.0.1","ts-node":"^9.1.1","typescript":"^4.2.4"},"dependencies":{"gif-encoder":"^0.7.2","ndarray":"^1.0.19","ndarray-ops":"^1.2.2","omggif":"^1.0.10","pngjs-nozlib":"^1.0.0"},"gitHead":"d980d0afab6e5131f6821e39f86300e071b42dbd","_id":"@canvacord/gif@1.0.2","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-lQ70KMd3gPGKfhK3bSNNBfo00IYPGAMD54UT7VFEnOF5LvKNVPWmZznmffZZ/mSFu8Ch8wtR3wnSHgKqasMLXQ==","shasum":"0a3a63f12a4866e4adc3dc8bebc23b5842d50e18","tarball":"https://registry.npmjs.org/@canvacord/gif/-/gif-1.0.2.tgz","fileCount":12,"unpackedSize":13226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgug+hCRA9TVsSAnZWagAAA2gP+wUaY8NZ0SeBDFLdvtfU\nDq/ch92DUy1MaKPNQovEBFMy34hXdPHwcm1FHTJA7898q2Uid8Sw/xcEWyQA\n+sLfZP5AIZm1m33jKT1x3maMTtu4Y16bXnEUpcp8A/XwO0y7FnotDbEIfqOm\nAL7YabCCQxIOCA3/M/4MFTFk3b8JxbMHQIfypfJ1qgRgYvVIlkDWhclGI+08\nPpr3jtpjI/XoipEHJJ+IoYKYxeR+Sk/eqrjTZkOcPhsdtbrlyfHrlcgYfMgj\nuLiFAjFGEgmSUBoYhFM7BhcQ8jZJG1bKdY2FfnY2lu6xHjZUguCQW+7lClId\nijzpGbKYzC0MH3QWDC7VQAopKXNlM+Gm/6nHuisU/LMe2L8euRG4xse35qui\nHvq/3uNXgTDwpcmVGHO5SOafqjw09XMhkNiM0Yh2+dHjSOrISZq8yqMA808S\nMH7iKIPWbRJXbqQhTRcHq6CPIyDGp+IuDQOLXnev2hLcuBROV8FS+Oo+sjwB\nshOPnNXMOPnN5dE+LkCSUeM7UhLakJjaWjA5LRIIzqlzQFDJwe7vXblz/9na\nz8HGwCdwWUg+4Y69pr9TlkxmVTrPgkEE//QecUemLfY/n1Y8eLEgegL9uo4S\n98+j6JTMgAi0W7wGOzBdO17/8NoU9bodiBzIUMme4IYB5e4ehXcpHkYHwXL0\nnFhp\r\n=kO4e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICJr1Td2NWBLDY/IsZ9yx1TUCwFx8/UK3uLaLEIVAs6wAiAaD1XummVfCSh9SesM2/O69QItJFF5kLDye5bHVZ2d8Q=="}]},"_npmUser":{"name":"snowflake7","email":"mail2dynamite@gmail.com"},"directories":{},"maintainers":[{"name":"snowflake7","email":"mail2dynamite@gmail.com"},{"name":"zyrouge","email":"zyrouge@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gif_1.0.2_1622806432962_0.4367566573226289"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-17T12:04:58.433Z","1.0.0":"2021-05-17T12:04:58.882Z","modified":"2022-04-04T21:42:53.929Z","1.0.1":"2021-05-17T12:18:30.470Z","1.0.2":"2021-06-04T11:33:53.065Z"},"maintainers":[{"email":"rudimemtaryofficial@gmail.com","name":"adoniswoah"},{"email":"mail2dynamite@gmail.com","name":"snowflake7"},{"email":"zyrouge@gmail.com","name":"zyrouge"}],"description":"GIF decoder/encoder for Canvacord","homepage":"https://github.com/DevSnowflake/gif#readme","keywords":["gif","canvacord","gifencoder","gifdecoder"],"repository":{"type":"git","url":"git+https://github.com/DevSnowflake/gif.git"},"author":{"name":"Snowflake107"},"bugs":{"url":"https://github.com/DevSnowflake/gif/issues"},"license":"MIT","readme":"# @canvacord/gif\r\nGIF Encoder and Decoder for **[Canvacord](https://npmjs.com/package/canvacord)**.\r\n\r\n# Installation\r\n\r\n```sh\r\n$ npm install --save @canvacord/gif\r\n\r\n// or\r\n$ yarn add @canvacord/gif\r\n```\r\n\r\n# Examples\r\n## Decoding GIF\r\n\r\n```js\r\n// es6\r\nimport { Decoder } from '@canvacord/gif';\r\nimport { readFileSync, createWriteStream } from 'fs';\r\n\r\n// cjs\r\nconst { Decoder } = require('@canvacord/gif');\r\nconst { readFileSync, createWriteStream } = require('fs');\r\n\r\nconst source = readFileSync('./img.gif');\r\nconst decoder = new Decoder(source);\r\nconst rawFrames = decoder.decode();\r\n\r\n// log raw frames data\r\nconsole.log(rawFrames);\r\n\r\n// get png image of each frame\r\nconst pngFrames = decoder.toPNG(rawFrames);\r\n\r\nfor (let i = 0; i < pngFrames.length; i++) {\r\n    const frame = pngFrames[i];\r\n    frame.pipe(createWriteStream(`./frame_${i}.png`));\r\n}\r\n```\r\n\r\n## Encoding raw frame to GIF\r\n\r\n```js\r\n// es6\r\nimport { Decoder, Encoder } from '@canvacord/gif';\r\nimport { readFileSync, createWriteStream } from 'fs';\r\n\r\n// cjs\r\nconst { Decoder, Encoder } = require('@canvacord/gif');\r\nconst { readFileSync, createWriteStream } = require('fs');\r\n\r\nconst source = readFileSync('./img.gif');\r\nconst decoder = new Decoder(source);\r\nconst rawFrames = decoder.decode();\r\n\r\n// encode each frames into gif\r\nfor (let i = 0; i < rawFrames.length; i++) {\r\n    const frame = new Encoder(rawFrames[i]).encode();\r\n    frame.pipe(createWriteStream(`./frame_${i}.gif`));\r\n}\r\n```","readmeFilename":"README.md"}