UNPKG

810 BJavaScriptView Raw
1"use strict"
2
3var ndarray = require("ndarray")
4var path = require("path")
5var pngparse = require("pngparse")
6var fs = require("fs")
7
8function handlePNG(url, cb) {
9 fs.readFile(url, function(err, data) {
10 if(err) {
11 cb(err)
12 return
13 }
14 pngparse.parse(data, function(err, img_data) {
15 if(err) {
16 cb(err)
17 return
18 }
19 cb(null, ndarray.ctor(new Uint8Array(img_data.data),
20 [img_data.width|0, img_data.height|0, 4],
21 [4, img_data.width|0, 1],
22 0))
23 })
24 })
25}
26
27module.exports = function getPixels(url, cb) {
28 var ext = path.extname(url)
29 switch(ext.toUpperCase()) {
30 case ".PNG":
31 handlePNG(url, cb)
32 break
33
34 default:
35 process.nextTick(function() {
36 cb(new Error("Unsupported file type: " + ext))
37 })
38 }
39}