diff options
author | Asbjørn Sloth Tønnesen <asbjorn@asbjorn.biz> | 2012-06-28 19:49:45 +0000 |
---|---|---|
committer | Asbjørn Sloth Tønnesen <asbjorn@asbjorn.biz> | 2012-06-28 19:49:45 +0000 |
commit | 5e54ba7aa27b95d1e0568693915e735ab8058ff7 (patch) | |
tree | 1c2743605a6cce00edb82b5f15b9a3f08f6ace30 /web/js/labitrack.d/05-utils.js | |
download | labitrack-5e54ba7aa27b95d1e0568693915e735ab8058ff7.tar.gz labitrack-5e54ba7aa27b95d1e0568693915e735ab8058ff7.tar.xz labitrack-5e54ba7aa27b95d1e0568693915e735ab8058ff7.zip |
Initial version
Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.biz>
Diffstat (limited to 'web/js/labitrack.d/05-utils.js')
-rw-r--r-- | web/js/labitrack.d/05-utils.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/web/js/labitrack.d/05-utils.js b/web/js/labitrack.d/05-utils.js new file mode 100644 index 0000000..12822da --- /dev/null +++ b/web/js/labitrack.d/05-utils.js @@ -0,0 +1,36 @@ +(function(labitrack){ + +labitrack.utils = {}; +labitrack.utils.new_context = function(w, h){ + var canvas = document.createElement('canvas'); + canvas.width = w; + canvas.height = h; + return canvas.getContext('2d'); +}; + +// Color quantization using Euclidean distance +// https://en.wikipedia.org/wiki/Euclidean_distance +// We don't do any alpha blending for now +labitrack.utils.convert_to_monochrome = function(data){ + var p = data.data; + for(var i = 0, l = p.length; i < l; i+=4) { + var v = (p[i+3] === 0 // handle alpha + || + (Math.pow(p[i], 2) + Math.pow(p[i+1], 2) + Math.pow(p[i+2], 2)) + > + (Math.pow(255-p[i], 2) + Math.pow(255-p[i+1], 2) + Math.pow(255-p[i+2], 2)) + ) * 255; + p[i] = p[i+1] = p[i+2] = v; + p[i+3] = 255; + } +}; + +labitrack.utils.time = function(callback){ + var start = Date.now(); + var end = start; + callback(); + end = Date.now(); + return end - start; +}; + +}(labitrack)); |