{"_id":"png.js","_rev":"12-35612dd2b06dbea2186dd416b112f1ac","name":"png.js","description":"A PNG decoder fully written in JavaScript","dist-tags":{"latest":"0.2.1"},"versions":{"0.0.1":{"author":{"name":"Arian Stolwijk"},"name":"png.js","description":"A PNG decoder fully written in JavaScript","version":"0.0.1","main":"PNGReader.js","dependencies":{},"devDependencies":{"wrapup":"0.9.10"},"optionalDependencies":{},"engines":{"node":"*"},"_id":"png.js@0.0.1","dist":{"shasum":"a2100a3c98b66a41a983dee2f1d4037ec86c58b1","tarball":"https://registry.npmjs.org/png.js/-/png.js-0.0.1.tgz","integrity":"sha512-iBi29NhEgqMkm7dMBhlWyinwdjPQnwNNSZXI4LlMa1Ojswk/rfgZW/ktPM5gUaSONFnohUn0K/myIZXV3c6Rmg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfv+PYl3xesmgqM50PFSkvcaxhjj30FG0TLjwxcgBPAwIhAIbpgBVB03hsryvx0KovK5DHhh4Bpx7vDKTBEQ7KZ5iR"}]},"maintainers":[{"name":"arian","email":"stolwijk.arian@gmail.com"}]},"0.0.2":{"author":{"name":"Arian Stolwijk"},"name":"png.js","description":"A PNG decoder fully written in JavaScript","version":"0.0.2","repository":{"url":"git://github.com/arian/pngjs.git"},"main":"PNGReader.js","dependencies":{},"devDependencies":{"wrapup":"0.9.10"},"optionalDependencies":{},"engines":{"node":"*"},"_id":"png.js@0.0.2","dist":{"shasum":"67edb2c76954b41dad62a03236c49f24203a0cc1","tarball":"https://registry.npmjs.org/png.js/-/png.js-0.0.2.tgz","integrity":"sha512-6RE4DEcxQWu/YiASyNoKILWqv5gyCh6vugfgMtAV8dmJf9/o8sqoEcJJ6tRDD+CJr8tFeyUlJkM+ReeB8VKW3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCk5NCTBwpokIn0RVjOmONTHIiRCdNc46D05jERklhttAIhAMqG7da+aG+3GGl3ssPMUSW/06PMs0IqtIvtY/Fr3+9G"}]},"maintainers":[{"name":"arian","email":"stolwijk.arian@gmail.com"}]},"0.1.0":{"author":{"name":"Arian Stolwijk"},"name":"png.js","description":"A PNG decoder fully written in JavaScript","version":"0.1.0","repository":{"url":"git://github.com/arian/pngjs.git"},"main":"PNGReader.js","dependencies":{},"devDependencies":{"wrapup":"0.9.10"},"optionalDependencies":{},"engines":{"node":"*"},"_id":"png.js@0.1.0","dist":{"shasum":"8869774e5e2a3f05e582c3eadac3141bc14b788b","tarball":"https://registry.npmjs.org/png.js/-/png.js-0.1.0.tgz","integrity":"sha512-NS1SjKlMFyR0i7BmhBvfSxpJNlShUlq11GTQFeqzEzyuvZfhtttHJb2ELDgMzGNCs6B8wOAAwZkjvyJ2CwgVEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAY/91uQlCUHvoW0k7b1AK5zcrgrVAFL+oqYRqOHyGM/AiAPTp2XaswUGGOZL6EXMlPYCjeCyo58OnKNUCSon+Rxyg=="}]},"_npmVersion":"1.1.71","_npmUser":{"name":"arian","email":"stolwijk.arian@gmail.com"},"maintainers":[{"name":"arian","email":"stolwijk.arian@gmail.com"}]},"0.1.1":{"author":{"name":"Arian Stolwijk"},"name":"png.js","description":"A PNG decoder fully written in JavaScript","version":"0.1.1","repository":{"url":"git://github.com/arian/pngjs.git"},"main":"PNGReader.js","dependencies":{},"devDependencies":{"wrapup":"0.9.10"},"optionalDependencies":{},"engines":{"node":"*"},"_id":"png.js@0.1.1","dist":{"shasum":"bf43f915301cd12134c2d3f473bd80172d2619e9","tarball":"https://registry.npmjs.org/png.js/-/png.js-0.1.1.tgz","integrity":"sha512-CyKLm+gbh+gF0nXe2yDU1D6JoLsxR0VrychoLknJgo1OF/OZJoJZcJl6PLqh8tzq1CwZ87016Vqb8KeVFQ2kAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDb7of8UrK/xOHCdTmnLe0xL4pNqya7DEXB2J/fjVkMrAiAkeT/k1WOwTGMZ8Cn6K43GsvgWWCDxjlua+Y4yn3YgrA=="}]},"_npmVersion":"1.1.71","_npmUser":{"name":"arian","email":"stolwijk.arian@gmail.com"},"maintainers":[{"name":"arian","email":"stolwijk.arian@gmail.com"}]},"0.2.1":{"author":{"name":"Arian Stolwijk"},"name":"png.js","description":"A PNG decoder fully written in JavaScript","version":"0.2.1","repository":{"url":"git://github.com/arian/pngjs.git"},"scripts":{"build":"browserify ./PNGReader.js -s PNGReader -o html/png.js"},"main":"PNGReader.js","files":["PNG.js","PNGReader.js"],"dependencies":{},"devDependencies":{"browserify":"^12.0.1","canvas":"^1.3.5"},"gitHead":"662e66d36a0849b202198f58e3aad7b5e5b10b62","bugs":{"url":"https://github.com/arian/pngjs/issues"},"homepage":"https://github.com/arian/pngjs","_id":"png.js@0.2.1","_shasum":"da6b83c134bdc101940d9ab1c98e9154affbb1f2","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"arian","email":"stolwijk.arian@gmail.com"},"maintainers":[{"name":"arian","email":"stolwijk.arian@gmail.com"}],"dist":{"shasum":"da6b83c134bdc101940d9ab1c98e9154affbb1f2","tarball":"https://registry.npmjs.org/png.js/-/png.js-0.2.1.tgz","integrity":"sha512-EXQ+wk98iL3KuuPY6bUcfPeM1CZCK8/exKoTxY4H6EjU2hMYtV5ofx7gxmjL1mnJpcvexXexKuC3c5U7f7KVFg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3L1KBrqyOQwkv3E+0m3BafEh337Zli76nrD98X5XVAwIgUtnYlbDGp+CUmUYd9Lp2zurCNCoMqbsmW83lUyHYTL8="}]}}},"readme":"\nPNG.js\n======\n\nPNG.js is a PNG decoder fully written in JavaScript. It works in Node.js as\nwell as in (modern) browsers.\n\nUsage\n-----\n\n``` js\nvar PNGReader = require('png.js');\n\nvar reader = new PNGReader(bytes);\nreader.parse(function(err, png){\n\tif (err) throw err;\n\tconsole.log(png);\n});\n\n```\n\nOr with options:\n\n``` js\nreader.parse({\n\tdata: false\n}, function(err, png){\n\tif (err) throw err;\n\tconsole.log(png);\n});\n\n```\n\nCurrently the only option is:\n\n- `data` (*boolean*) - should it read the pixel data, or only the image information.\n\n### PNG object\n\nThe PNG object is passed in the callback. It contains all the data extracted\nfrom the image.\n\n``` js\n// most importantly\npng.getWidth();\npng.getHeight();\npng.getPixel(x, y); // [red, blue, green, alpha]\n// but also\npng.getBitDepth();\npng.getColorType();\npng.getCompressionMethod();\npng.getFilterMethod();\npng.getInterlaceMethod();\npng.getPalette();\n```\n\nUsing PNGReader in Node.js\n--------------------------\n\nPNGReader accepts an `Buffer` object, returned by `fs.readFile`, for example:\n\n``` js\nfs.readFile('test.png', function(err, buffer){\n\n\tvar reader = new PNGReader(buffer);\n\treader.parse(function(err, png){\n\t\tif (err) throw err;\n\t\tconsole.log(png);\n\t});\n\n});\n```\n\nUsing PNGReader in the Browser\n------------------------------\n\nPNGReader accepts a byte string, array of bytes or an ArrayBuffer.\n\nFor example using FileReader with file input fields:\n\n```js\nvar reader = new FileReader();\n\nreader.onload = function(event){\n\tvar reader = new PNGReader(event.target.result);\n\treader.parse(function(err, png){\n\t\tif (err) throw err;\n\t\tconsole.log(png);\n\t});\n};\n\nfileInputElement.onchange = function(){\n\treader.readAsArrayBuffer(fileInputElement.files[0]);\n\t// or, but less optimal\n\treader.readAsBinaryString(fileInputElement.files[0]);\n};\n```\n\nOr instead of using input elements, XHR can also be used:\n\n```js\nvar xhr = new XMLHttpRequest();\nxhr.open('GET', 'image.png', true);\nxhr.responseType = 'arraybuffer';\n\nxhr.onload = function(e){\n\tif (this.status == 200){\n\t\tvar reader = new PNGReader(this.response);\n\t\treader.parse(function(err, png){\n\t\t\tif (err) throw err;\n\t\t\tconsole.log(png);\n\t\t});\n\t}\n};\n\nxhr.send();\n```\n\nBuilding Browser Version\n------------------------\n\nPNG.js uses CommonJS modules which can be used in browsers after building it\nwith [browserify](http://browserify.org/):\n\n\tbrowserify ./PNGReader.js -s PNGReader\n","maintainers":[{"name":"arian","email":"stolwijk.arian@gmail.com"}],"time":{"modified":"2022-06-24T05:17:59.458Z","created":"2012-07-21T12:17:55.481Z","0.0.1":"2012-07-21T12:17:57.163Z","0.0.2":"2012-07-21T14:44:12.216Z","0.1.0":"2013-01-19T21:52:15.832Z","0.1.1":"2013-01-22T00:19:57.021Z","0.2.1":"2016-01-02T16:36:24.447Z"},"author":{"name":"Arian Stolwijk"},"repository":{"url":"git://github.com/arian/pngjs.git"},"homepage":"https://github.com/arian/pngjs","bugs":{"url":"https://github.com/arian/pngjs/issues"},"readmeFilename":"README.md"}