From c885dcf4519433ccb5f10475faba8d1e4142e5dd Mon Sep 17 00:00:00 2001 From: Jeffrey Warren Date: Fri, 22 Jul 2022 17:29:57 -0400 Subject: [PATCH 1/3] Create version flags --- index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 9926f8b5..0d42f0d7 100644 --- a/index.html +++ b/index.html @@ -231,7 +231,8 @@

BLUE filters Date: Fri, 22 Jul 2022 21:51:49 +0000 Subject: [PATCH 3/3] compiled version flag code --- dist/infragram.js | 18 ++++++++++-------- dist/infragram.js.map | 2 +- dist/infragram.min.js | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/dist/infragram.js b/dist/infragram.js index 8b385da4..ba098c9e 100644 --- a/dist/infragram.js +++ b/dist/infragram.js @@ -92,6 +92,8 @@ function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else i 2: [function (require, module, exports) { window.Infragram = function Infragram(options) { options = options || {}; + options.version = options.version || 1; // for old instances where it hasn't been explicitly set + options.uploader = options.uploader || false; options.processor = options.processor || 'javascript'; options.camera = require('./io/camera')(options); @@ -131,7 +133,7 @@ function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else i if (image) options.run(options.mode); options.camera.getSnapshot(); //if (options.colorized) return options.colorize(); }, interval); - }; // TODO: this doesn't work; it just downloads the unmodified image. + }; // TODO: this doesn't work; it just downloads the unmodified image. // probably a timing issue? @@ -420,7 +422,7 @@ function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else i var webRtcOptions = options.webRtcOptions || { "audio": false, "video": true, - // the element (by id) you wish to use for + // the element (by id) you wish to use for // displaying the stream from a camera el: "webcam", extern: null, @@ -429,8 +431,8 @@ function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else i // container width: 640, height: 480, - // the recommended mode to be used is - // "callback " where a callback is executed + // the recommended mode to be used is + // "callback " where a callback is executed // once data is available mode: "callback", // a debugger callback is available if needed @@ -504,7 +506,7 @@ function _slicedToArray(arr, i) { if (Array.isArray(arr)) { return arr; } else i function getSnapshot() { var video; // If the current context is WebRTC/getUserMedia (something // passed back from the shim to avoid doing further feature - // detection), we handle getting video/images for our canvas + // detection), we handle getting video/images for our canvas // from our HTML5 Click here to upgrade your browser.';\r\n\r\n/**\r\n * Mesasge for need better hardware\r\n * @type {string}\r\n */\r\nvar OTHER_PROBLEM = '' +\r\n \"It doesn't appear your computer can support WebGL.
\" +\r\n 'Click here for more information.';\r\n\r\n/**\r\n * Creates a webgl context. If creation fails it will\r\n * change the contents of the container of the \r\n * tag to an error message with the correct links for WebGL.\r\n * @param {Element} canvas. The canvas element to create a\r\n * context from.\r\n * @param {WebGLContextCreationAttirbutes} opt_attribs Any\r\n * creation attributes you want to pass in.\r\n * @return {WebGLRenderingContext} The created context.\r\n */\r\nvar setupWebGL = function(canvas, opt_attribs) {\r\n function showLink(str) {\r\n var container = canvas.parentNode;\r\n if (container) {\r\n container.innerHTML = makeFailHTML(str);\r\n }\r\n };\r\n\r\n if (!window.WebGLRenderingContext) {\r\n //showLink(GET_A_WEBGL_BROWSER);\r\n return null;\r\n }\r\n\r\n var context = create3DContext(canvas, opt_attribs);\r\n if (!context) {\r\n //showLink(OTHER_PROBLEM);\r\n }\r\n return context;\r\n};\r\n\r\n/**\r\n * Creates a webgl context.\r\n * @param {!Canvas} canvas The canvas tag to get context\r\n * from. If one is not passed in one will be created.\r\n * @return {!WebGLContext} The created context.\r\n */\r\nvar create3DContext = function(canvas, opt_attribs) {\r\n var names = [\"webgl\", \"experimental-webgl\"];\r\n var context = null;\r\n for (var ii = 0; ii < names.length; ++ii) {\r\n try {\r\n context = canvas.getContext(names[ii], opt_attribs);\r\n } catch(e) {}\r\n if (context) {\r\n break;\r\n }\r\n }\r\n return context;\r\n}\r\n\r\nvar updateCSSIfInIFrame = function() {\r\n if (isInIFrame()) {\r\n document.body.className = \"iframe\";\r\n }\r\n};\r\n\r\n/**\r\n * Gets a WebGL context.\r\n * makes its backing store the size it is displayed.\r\n */\r\nvar getWebGLContext = function(canvas, opt_attribs) {\r\n if (isInIFrame()) {\r\n updateCSSIfInIFrame();\r\n\r\n // make the canvas backing store the size it's displayed.\r\n canvas.width = canvas.clientWidth;\r\n canvas.height = canvas.clientHeight;\r\n }\r\n\r\n var gl = setupWebGL(canvas, opt_attribs);\r\n return gl;\r\n};\r\n\r\n/**\r\n * Loads a shader.\r\n * @param {!WebGLContext} gl The WebGLContext to use.\r\n * @param {string} shaderSource The shader source.\r\n * @param {number} shaderType The type of shader.\r\n * @param {function(string): void) opt_errorCallback callback for errors.\r\n * @return {!WebGLShader} The created shader.\r\n */\r\nvar loadShader = function(gl, shaderSource, shaderType, opt_errorCallback) {\r\n var errFn = opt_errorCallback || error;\r\n // Create the shader object\r\n var shader = gl.createShader(shaderType);\r\n\r\n // Load the shader source\r\n gl.shaderSource(shader, shaderSource);\r\n\r\n // Compile the shader\r\n gl.compileShader(shader);\r\n\r\n // Check the compile status\r\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\r\n if (!compiled) {\r\n // Something went wrong during compilation; get the error\r\n lastError = gl.getShaderInfoLog(shader);\r\n errFn(\"*** Error compiling shader '\" + shader + \"':\" + lastError);\r\n gl.deleteShader(shader);\r\n return null;\r\n }\r\n\r\n return shader;\r\n}\r\n\r\n/**\r\n * Creates a program, attaches shaders, binds attrib locations, links the\r\n * program and calls useProgram.\r\n * @param {!Array.} shaders The shaders to attach\r\n * @param {!Array.} opt_attribs The attribs names.\r\n * @param {!Array.} opt_locations The locations for the attribs.\r\n * @param {function(string): void) opt_errorCallback callback for errors.\r\n */\r\nvar loadProgram = function(\r\n gl, shaders, opt_attribs, opt_locations, opt_errorCallback) {\r\n var errFn = opt_errorCallback || error;\r\n var program = gl.createProgram();\r\n for (var ii = 0; ii < shaders.length; ++ii) {\r\n gl.attachShader(program, shaders[ii]);\r\n }\r\n if (opt_attribs) {\r\n for (var ii = 0; ii < opt_attribs.length; ++ii) {\r\n gl.bindAttribLocation(\r\n program,\r\n opt_locations ? opt_locations[ii] : ii,\r\n opt_attribs[ii]);\r\n }\r\n }\r\n gl.linkProgram(program);\r\n\r\n // Check the link status\r\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\r\n if (!linked) {\r\n // something went wrong with the link\r\n lastError = gl.getProgramInfoLog (program);\r\n errFn(\"Error in program linking:\" + lastError);\r\n\r\n gl.deleteProgram(program);\r\n return null;\r\n }\r\n return program;\r\n};\r\n\r\n/**\r\n * Loads a shader from a script tag.\r\n * @param {!WebGLContext} gl The WebGLContext to use.\r\n * @param {string} scriptId The id of the script tag.\r\n * @param {number} opt_shaderType The type of shader. If not passed in it will\r\n * be derived from the type of the script tag.\r\n * @param {function(string): void) opt_errorCallback callback for errors.\r\n * @return {!WebGLShader} The created shader.\r\n */\r\nvar createShaderFromScript = function(\r\n gl, scriptId, opt_shaderType, opt_errorCallback) {\r\n var shaderSource = \"\";\r\n var shaderType;\r\n var shaderScript = document.getElementById(scriptId);\r\n if (!shaderScript) {\r\n throw(\"*** Error: unknown script element\" + scriptId);\r\n }\r\n shaderSource = shaderScript.text;\r\n\r\n if (!opt_shaderType) {\r\n if (shaderScript.type == \"x-shader/x-vertex\") {\r\n shaderType = gl.VERTEX_SHADER;\r\n } else if (shaderScript.type == \"x-shader/x-fragment\") {\r\n shaderType = gl.FRAGMENT_SHADER;\r\n } else if (shaderType != gl.VERTEX_SHADER && shaderType != gl.FRAGMENT_SHADER) {\r\n throw(\"*** Error: unknown shader type\");\r\n return null;\r\n }\r\n }\r\n\r\n return loadShader(\r\n gl, shaderSource, opt_shaderType ? opt_shaderType : shaderType,\r\n opt_errorCallback);\r\n};\r\n\r\nvar defaultShaderType = [\r\n \"VERTEX_SHADER\",\r\n \"FRAGMENT_SHADER\"\r\n];\r\n\r\n/**\r\n * Creates a program from 2 script tags.\r\n *\r\n * @param {!WebGLContext} gl The WebGLContext to use.\r\n * @param {!Array.} shaderScriptIds Array of ids of the\r\n * script tags for the shaders. The first is assumed to\r\n * be the vertex shader, the second the fragment shader.\r\n * @param {!Array.} opt_attribs The attribs names.\r\n * @param {!Array.} opt_locations The locations for the attribs.\r\n * @param {function(string): void) opt_errorCallback callback for errors.\r\n * @return {!WebGLProgram} The created program.\r\n */\r\nvar createProgramFromScripts = function(\r\n gl, shaderScriptIds, opt_attribs, opt_locations, opt_errorCallback) {\r\n var shaders = [];\r\n for (var ii = 0; ii < shaderScriptIds.length; ++ii) {\r\n shaders.push(createShaderFromScript(\r\n gl, shaderScriptIds[ii], gl[defaultShaderType[ii]], opt_errorCallback));\r\n }\r\n return loadProgram(gl, shaders, opt_attribs, opt_locations, opt_errorCallback);\r\n};\r\n\r\n\r\n// Add your prefix here.\r\nvar browserPrefixes = [\r\n \"\",\r\n \"MOZ_\",\r\n \"OP_\",\r\n \"WEBKIT_\"\r\n];\r\n\r\n/**\r\n * Given an extension name like WEBGL_compressed_texture_s3tc\r\n * returns the supported version extension, like\r\n * WEBKIT_WEBGL_compressed_teture_s3tc\r\n * @param {string} name Name of extension to look for\r\n * @return {WebGLExtension} The extension or undefined if not\r\n * found.\r\n */\r\nvar getExtensionWithKnownPrefixes = function(gl, name) {\r\n for (var ii = 0; ii < browserPrefixes.length; ++ii) {\r\n var prefixedName = browserPrefixes[ii] + name;\r\n var ext = gl.getExtension(prefixedName);\r\n if (ext) {\r\n return ext;\r\n }\r\n }\r\n};\r\n\r\n\r\n/**\r\n * Resize a canvas to match the size it's displayed.\r\n * @param {!Canvas} canvas The canvas to resize.\r\n */\r\nvar resizeCanvasToDisplaySize = function(canvas) {\r\n if (canvas.width != canvas.clientWidth ||\r\n canvas.height != canvas.clientHeight) {\r\n canvas.width = canvas.clientWidth;\r\n canvas.height = canvas.clientHeight;\r\n }\r\n}\r\n\r\n/**\r\n * Provides requestAnimationFrame in a cross browser way.\r\n */\r\nvar requestAnimFrame = (function() {\r\n return window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n window.msRequestAnimationFrame ||\r\n function(/* function FrameRequestCallback */ callback, /* DOMElement Element */ element) {\r\n return window.setTimeout(callback, 1000/60);\r\n };\r\n})();\r\n\r\n/**\r\n * Provides cancelRequestAnimationFrame in a cross browser way.\r\n */\r\nvar cancelRequestAnimFrame = (function() {\r\n return window.cancelCancelRequestAnimationFrame ||\r\n window.webkitCancelRequestAnimationFrame ||\r\n window.mozCancelRequestAnimationFrame ||\r\n window.oCancelRequestAnimationFrame ||\r\n window.msCancelRequestAnimationFrame ||\r\n window.clearTimeout;\r\n})();\r\n\r\nreturn {\r\n createProgram: loadProgram,\r\n createProgramFromScripts: createProgramFromScripts,\r\n createShaderFromScriptElement: createShaderFromScript,\r\n getWebGLContext: getWebGLContext,\r\n updateCSSIfInIFrame: updateCSSIfInIFrame,\r\n getExtensionWithKnownPrefixes: getExtensionWithKnownPrefixes,\r\n resizeCanvasToDisplaySize: resizeCanvasToDisplaySize,\r\n requestAnimFrame: requestAnimFrame,\r\n cancelRequestAnimFrame: cancelRequestAnimFrame\r\n};\r\n\r\n};\r\n\n},{}]},{},[2]);\n"]} \ No newline at end of file +{"version":3,"sources":["infragram.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","module","urlHash","getUrlHashParameter","param","params","getUrlHashParameters","sPageURL","window","location","hash","split","pairs","object","forEach","pair","setUrlHashParameters","keys","Object","values","key","push","join","setUrlHashParameter","value","Infragram","options","version","uploader","processor","camera","colorized","mode","video_live","webGlSupported","processors","file","logger","Interface","console","log","type","colorize","map","run","save_log","video","initialize","interval","setInterval","image","getSnapshot","download","downloadImage","Camera","segmented_colormap","segments","x","l","len","m","ref","result","x0","x1","xstart","y0","y1","Colormaps","colormapFunctionGenerator","colormaps","fn","colormapRanges","JsImage","colorify","jsImage","colormap","b","data","g","j","$","addClass","width","height","Uint8ClampedArray","colormap1","colormap2","greyscale_colormap","Converters","hsv2rgb","h","s","v","q","rgb","Math","floor","rgb2hsv","d","max","min","canvas","ctx","getUserMedia","webRtcOptions","success","deviceError","videoEl","setAttribute","webcam","document","getElementById","getContext","show","el","extern","append","debug","onCapture","onWebRtcCapture","save","onSave","onSaveGetUserMedia","onLoad","onLoadGetUserMedia","col","img","tmp","w","pos","parseInt","putImageData","stream","context","navigator","mozGetUserMedia","mozSrcObject","srcObject","onerror","stop","error","alert","getElementsByTagName","updateImage","hide","capture","File","getMouseEvent","getParams","bubbles","cancelable","screenX","screenY","clientX","clientY","MouseEvent","eventType","mouseEvent","createEvent","initMouseEvent","event","format","lnk","createElement","href","getCurrentImage","match","Date","toISOString","replace","dispatchEvent","fireEvent","fetchImage","src","Image","onload","filename","FileUpload","setFilename","substring","val","change","button","click","save_infragrammar_expressions","run_infragrammar","run_colorize","Logger","log_mono","logEntry","log_hsv","log_rgb","javascriptProcessor","b_exp","g_exp","get_channels","converters","ndvi","r_exp","set_mode","update_colorbar","mkImage","Float32Array","nirJsImg","visJsImg","Float64Array","infragrammar","removeClass","infragrammar_mono","render","getImageData","copyToImageData","imageData","k","ref1","style","display","textContent","toFixed","update","ndvi_jsImg","normalize","resultJsImage","save_expressions","eval","save_expressions_hsv","getJsImage","new_mode","imgCanvas","videoWidth","videoHeight","drawImage","toDataURL","webglProcessor","imgContext","mapContext","inputImage","vertices","waitForShadersToLoad","webglUtils","default","stretched","grey","itemSize","shaderVertPath","shaderFragPath","shadersLoadedCallback","createContext","decolorize","load","glShaderLoaded","selColormap","createBuffer","buffer","gl","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","createTexture","textureUnit","texture","activeTexture","bindTexture","TEXTURE_2D","pixelStorei","UNPACK_FLIP_Y_WEBGL","texImage2D","RGBA","UNSIGNED_BYTE","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MAG_FILTER","NEAREST","TEXTURE_MIN_FILTER","slider","canvasName","expression","updateShader","addEventListener","preventDefault","glRestoreContext","getWebGLContext","getExtension","vertexBuffer","framebuffer","createFramebuffer","imageTexture","TEXTURE0","drawScene","returnImage","pColormap","pHsvUniform","pColorizedUniform","pSampler","pSelColormapUniform","pSliderUniform","pVertexPosition","requestAnimationFrame","shaderProgram","generateShader","viewport","useProgram","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","getUniformLocation","uniform1i","uniform1f","drawArrays","TRIANGLE_STRIP","toLowerCase","includes","html","createProgramFromScripts","setMode","newMode","getInputImage","imageToBase64","dataURL","saveExpression","Analysis","save_infragrammar_inputs","submit","Colorize","css","Fullscreen","fullscreen","innerWidth","imageSelector","fileSelector","Presets","Saving","args","ready","idNameMap","localStorage","getItem","setGrid","parametersObject","search","fetch_image","reader","FileReader","onReaderLoad","onImageLoad","target","readAsDataURL","files","modal","toggle","toggleClass","on","size","scale","ratio","setItem","delay","fadeOut","tooltip","popover","data1","width1","height1","channels","imgData","set","maxs","mins","results","lastError","msg","loggingOff","isInIFrame","top","glEnumToString","toString","makeFailHTML","GET_A_WEBGL_BROWSER","OTHER_PROBLEM","setupWebGL","opt_attribs","showLink","str","container","parentNode","innerHTML","WebGLRenderingContext","create3DContext","names","ii","updateCSSIfInIFrame","body","className","clientWidth","clientHeight","loadShader","shaderSource","shaderType","opt_errorCallback","errFn","shader","createShader","compileShader","compiled","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","deleteShader","loadProgram","shaders","opt_locations","program","createProgram","attachShader","bindAttribLocation","linkProgram","linked","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteProgram","createShaderFromScript","scriptId","opt_shaderType","shaderScript","text","VERTEX_SHADER","FRAGMENT_SHADER","defaultShaderType","shaderScriptIds","browserPrefixes","getExtensionWithKnownPrefixes","name","prefixedName","ext","resizeCanvasToDisplaySize","requestAnimFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","callback","element","setTimeout","cancelRequestAnimFrame","cancelCancelRequestAnimationFrame","webkitCancelRequestAnimationFrame","mozCancelRequestAnimationFrame","oCancelRequestAnimationFrame","msCancelRequestAnimationFrame","clearTimeout","createShaderFromScriptElement"],"mappings":"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","file":"infragram.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i ref; i = 0 <= ref ? ++m : --m) {\n result[i] = (x - x0) / (x1 - x0) * (y1[i] - y0[i]) + y0[i];\n }\n return result;\n }\n}\n\n},{}],4:[function(require,module,exports){\nmodule.exports={\n \"greyscale\": {\n \"author\": \"publiclab\",\n \"description\": \"A simple linear greyscale colormap, black to white.\",\n \"url\": \"https://publiclab.org/colormaps#greyscale\",\n \"colormapRanges\": [\n [0, [0, 0, 0], [255, 255, 255] ],\n [1, [255, 255, 255], [255, 255, 255] ]\n ]\n },\n\n \"default\": {\n \"author\": \"publiclab\",\n \"description\": \"A full-colorwheel colormap, covering the colors in the spectrum.\",\n \"url\": \"https://publiclab.org/colormaps#default\",\n \"colormapRanges\": [\n [0, [45,1,121], [25,1,137] ],\n [0.125, [25,1,137], [0,6,156] ],\n [0.1875, [0,6,156], [7,41,172] ],\n [0.25, [7,41,172], [22,84,187] ],\n [0.3125, [22,84,187], [25,125,194] ],\n [0.375, [25,125,194], [26,177,197] ], \n [0.4375, [26,177,197], [23,199,193] ],\n [0.47, [23,199,193], [25, 200,170] ],\n [0.50, [25, 200,170], [21,209,27] ],\n [0.5625, [21,209,27], [108,215,18] ],\n [0.625, [108,215,18], [166,218,19] ],\n [0.6875, [166,218,19], [206,221,20] ],\n [0.75, [206,221,20], [222,213,19 ] ],\n [0.7813, [222,213,19], [222, 191, 19]],\n [0.8125, [222, 191, 19], [227,133,17] ],\n [0.875, [227,133,17], [231,83,16] ],\n [0.9375, [231,83,16], [220,61,48] ] \n ]\n },\n\n \"stretched\": {\n \"author\": \"publiclab\",\n \"description\": \"A simple colormap from blue to red, with no purple overlap.\",\n \"url\": \"https://publiclab.org/colormaps#stretched\",\n \"colormapRanges\": [\n [0, [0, 0, 255], [0, 0, 255] ],\n [0.1, [0, 0, 255], [38, 195, 195] ],\n [0.5, [0, 150, 0], [255, 255, 0] ],\n [0.7, [255, 255, 0], [255, 50, 50] ],\n [0.9, [255, 50, 50], [255, 50, 50] ]\n ]\n },\n\n \"bluwhtgrngis\": {\n \"author\": \"MaggPi\",\n \"description\": \"A colormap from blue to white to green to....\",\n \"url\": \"https://publiclab.org/colormaps#bluwhtgrngis\",\n \"colormapRanges\": [\n [0, [6,23,86], [6,25, 84] ],\n [0.0625, [6,25,84], [6,25, 84] ],\n [0.125, [6,25,84], [6,25, 84] ],\n [0.1875, [6,25,84], [6,25, 84] ],\n [0.25, [6,25,84], [6,25,84] ],\n [0.3125, [6,25,84], [9,24, 84] ],\n [0.3438, [9,24, 84], [119,120,162] ],\n [0.375, [119,129,162],[249,250,251] ],\n [0.406, [249,250,251],[255,255,255] ],\n [0.4375, [255,255,255],[255,255,255] ],\n [0.50, [255,255,255],[214,205,191] ],\n [0.52, [214,205,191],[178,175,96] ],\n [0.5625, [178,175,96], [151,176,53] ],\n [0.593, [151,176,53], [146,188,12] ],\n [0.625, [146,188,12], [96,161,1] ],\n [0.6875, [96,161,1], [30,127,3] ],\n [0.75, [30,127,3], [0,99,1] ],\n [0.8125, [0,99,1], [0,74,1] ],\n [0.875, [0,74,1], [0,52, 0] ],\n [0.9375, [0,52, 0], [0,34,0] ],\n [0.968, [0,34,0], [68,70,67] ]\n ]\n },\n\n \"brntogrn\": {\n \"author\": \"MaggPi\",\n \"description\": \"A colormap from brown to green.\",\n \"url\": \"https://publiclab.org/colormaps#brntogrn\",\n \"colormapRanges\": [\n [0, [110,12,3], [118,6,1] ],\n [0.0625, [118,6,1], [141,19,6] ],\n [0.125, [141,19,6], [165,35,13] ],\n [0.1875, [165,35,13], [177,59,25] ],\n [0.2188, [177,59,25], [192,91,36] ],\n [0.25, [192,91,36], [214, 145, 76] ],\n [0.3125, [214,145,76], [230,183,134] ],\n [0.375, [230,183,134],[243, 224, 194]], \n [0.4375, [243,224,194],[250,252,229] ],\n [0.50, [250,252,229],[217,235,185] ],\n [0.5625, [217,235,185],[184,218,143] ],\n [0.625, [184,218,143],[141,202,89] ],\n [0.6875, [141,202,89], [80,176,61] ],\n [0.75, [80,176,61], [0, 147, 32] ],\n [0.8125, [0,147,32], [1, 122, 22] ],\n [0.875, [1,122,22], [0, 114, 19] ],\n [0.90, [0,114,19], [0,105,18] ],\n [0.9375, [0,105,18], [7,70,14] ] \n ]\n },\n\n \"blutoredjet\": {\n \"author\": \"MaggPi\",\n \"description\": \"A colormap from blue to red.\",\n \"url\": \"https://publiclab.org/colormaps#blutoredjet\",\n \"colormapRanges\": [\n [0, [0,0,140], [1,1,186] ],\n [0.0625, [1,1,186], [0,1,248] ],\n [0.125, [0,1,248], [0,70,254] ],\n [0.1875, [0,70,254], [0,130,255] ],\n [0.25, [0,130,255], [2,160,255] ],\n [0.2813, [2,160,255], [0,187,255] ],\n [0.3125, [0,187,255], [6,250,255] ],\n [0.348, [0,218,255], [8,252,251] ],\n [0.375, [8,252,251], [27,254,228] ], \n [0.406, [27,254,228], [70,255,187] ],\n [0.4375, [70,255,187], [104,254,151]],\n [0.47, [104,254,151],[132,255,19] ],\n [0.50, [132,255,19], [195,255,60] ],\n [0.5625, [195,255,60], [231,254,25] ],\n [0.5976, [231,254,25], [253,246,1] ],\n [0.625, [253,246,1], [252,210,1] ],\n [0.657, [252,210,1], [255,183,0] ],\n [0.6875, [255,183,0], [255,125,2] ],\n [0.75, [255,125,2], [255,65, 1] ],\n [0.8125, [255,65, 1], [247, 1, 1] ],\n [0.875, [247,1,1], [200, 1, 3] ],\n [0.9375, [200,1,3], [122, 3, 2] ] \n ]\n },\n\n \"colors16\": {\n \"author\": \"publiclab\",\n \"description\": \"A segmented colormap of the full color spectrum, divided into 16 colors.\",\n \"url\": \"https://publiclab.org/colormaps#colors16\",\n \"colormapRanges\": [\n [0, [0,0,0], [0,0,0] ],\n [0.0625, [3,1,172], [3,1,172] ],\n [0.125, [3,1,222], [3,1, 222] ],\n [0.1875, [0,111,255], [0,111,255] ],\n [0.25, [3,172,255], [3,172,255] ],\n [0.3125, [1,226,255], [1,226,255] ],\n [0.375, [2,255,0], [2,255,0] ], \n [0.4375, [198,254,0], [190,254,0] ],\n [0.50, [252,255,0], [252,255,0] ],\n [0.5625, [255,223,3], [255,223,3] ],\n [0.625, [255,143,3], [255,143,3] ],\n [0.6875, [255,95,3], [255,95,3] ],\n [0.75, [242,0,1], [242,0,1] ],\n [0.8125, [245,0,170], [245,0,170] ],\n [0.875, [223,180,225], [223,180,225] ],\n [0.9375, [255,255,255], [255,255, 255]] \n ]\n },\n\n \"fastie\": {\n \"author\": \"cfastie\",\n \"description\": \"A colormap for highlighting NDVI values over 0 on a scale from -1 to 1; in this scale, values from 0-0.5 are greyscale, while those over 0.5 are color.\",\n \"url\": \"https://publiclab.org/colormaps#fastie\",\n \"colormapRanges\": [\n [0, [255, 255, 255], [0, 0, 0] ],\n [0.167, [0, 0, 0], [255, 255, 255] ],\n [0.33, [255, 255, 255], [0, 0, 0] ],\n [0.5, [0, 0, 0], [140, 140, 255] ],\n [0.55, [140, 140, 255], [0, 255, 0] ],\n [0.63, [0, 255, 0], [255, 255, 0] ],\n [0.75, [255, 255, 0], [255, 0, 0] ],\n [0.95, [255, 0, 0], [255, 0, 255] ]\n ]\n }\n \n}\n\n},{}],5:[function(require,module,exports){\n// This file was adapted from infragram-js:\n// http://github.com/p-v-o-s/infragram-js.\n\nmodule.exports = function Colormaps(options) {\n\n // see https://github.com/publiclab/image-sequencer/tree/main/src/modules/Colormap/\n var colormapFunctionGenerator = require('./colormapFunctionGenerator.js');\n var colormaps = require('./colormaps.json');\n Object.keys(colormaps).forEach(function(key) {\n // make a function from the colormap, which we can't easily do in JSON\n colormaps[key].fn = colormapFunctionGenerator(colormaps[key].colormapRanges);\n });\n\n var JsImage = require('../util/JsImage.js');\n\n function colorify(jsImage, colormap) {\n var b, data, g, i, j, l, n, r, ref;\n $('#btn-colorize').addClass('active');\n n = jsImage.width * jsImage.height;\n data = new Uint8ClampedArray(4 * n);\n j = 0;\n for (i = l = 0, ref = n; 0 <= ref ? l < ref : l > ref; i = 0 <= ref ? ++l : --l) {\n [r, g, b] = colormap(jsImage.data[i]);\n data[j++] = r;\n data[j++] = g;\n data[j++] = b;\n data[j++] = 255;\n }\n return new JsImage(data, jsImage.width, jsImage.height, 4);\n }\n\n return {\n colorify: colorify,\n colormap1: colormaps['default'].fn,\n colormap2: colormaps['stretched'].fn,\n greyscale_colormap: colormaps['greyscale'].fn,\n segmented_colormap: colormapFunctionGenerator\n }\n\n}\n\n},{\"../util/JsImage.js\":17,\"./colormapFunctionGenerator.js\":3,\"./colormaps.json\":4}],6:[function(require,module,exports){\n// This file was adapted from infragram-js:\n// http://github.com/p-v-o-s/infragram-js.\n\nmodule.exports = window.Converters = {\n\n // modified from:\n // http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c\n hsv2rgb: function hsv2rgb(h, s, v) {\n var data, f, i, p, q, rgb, t;\n data = [];\n if (s === 0) {\n rgb = [v, v, v];\n } else {\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n data = [v * (1 - s), v * (1 - s * (h - i)), v * (1 - s * (1 - (h - i)))];\n switch (i) {\n case 0:\n rgb = [v, t, p];\n break;\n case 1:\n rgb = [q, v, p];\n break;\n case 2:\n rgb = [p, v, t];\n break;\n case 3:\n rgb = [p, q, v];\n break;\n case 4:\n rgb = [t, p, v];\n break;\n default:\n rgb = [v, p, q];\n }\n }\n return rgb;\n },\n\n rgb2hsv: function rgb2hsv(r, g, b) {\n var d, h, max, min, s, v;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n h = s = v = max;\n d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n }\n h /= 6;\n }\n return [h, s, v];\n }\n\n}\n\n},{}],7:[function(require,module,exports){\n// This file was adapted from infragram-js:\n// http://github.com/p-v-o-s/infragram-js.\nmodule.exports = function Camera(options) {\n var canvas, \n ctx;\n\n // Initialize getUserMedia with options\n function initialize() {\n getUserMedia(webRtcOptions, success, deviceError);\n\n // iOS Safari 11 compatibility: https://github.com/webrtc/adapter/issues/685\n webRtcOptions.videoEl.setAttribute('autoplay', 'autoplay');\n webRtcOptions.videoEl.setAttribute('playsinline', 'playsinline');\n\n window.webcam = webRtcOptions; // this is weird but maybe used for flash fallback?\n canvas = options.canvas || document.getElementById(\"image\");\n ctx = canvas.getContext(\"2d\");\n // Trigger a snapshot w/ button\n // -- move this to interface.js?\n $(\"#snapshot\").show();\n $(\"#live-video\").show();\n $(\"#webcam\").show();\n }\n\n // webRtcOptions contains the configuration information for the shim\n // it allows us to specify the width and height of the video\n // output we\"re working with, the location of the fallback swf,\n // events that are triggered onCapture and onSave (for the fallback)\n // and so on.\n var webRtcOptions = options.webRtcOptions || {\n \"audio\": false,\n \"video\": true,\n // the element (by id) you wish to use for \n // displaying the stream from a camera\n el: \"webcam\",\n extern: null,\n append: true,\n // height and width of the output stream\n // container\n width: 640,\n height: 480,\n // the recommended mode to be used is \n // \"callback \" where a callback is executed \n // once data is available\n mode: \"callback\",\n // a debugger callback is available if needed\n debug: function() {},\n // callback for capturing the fallback stream\n onCapture: function onWebRtcCapture() {\n return window.webcam.save();\n },\n // callback for saving the stream, useful for\n // relaying data further.\n onSave: onSaveGetUserMedia,\n onLoad: function onLoadGetUserMedia() {}\n }\n\n function onSaveGetUserMedia(data) {\n var col, h, i, img, j, ref, tmp, w, pos = 0;\n col = data.split(\"\");\n img = camera.image;\n tmp = null;\n w = webRtcOptions.width;\n h = webRtcOptions.height;\n for (i = j = 0, ref = w - 1; 0 <= ref ? j <= ref : j >= ref; i = 0 <= ref ? ++j : --j) {\n tmp = parseInt(col[i], 10);\n img.data[pos + 0] = (tmp >> 16) & 0xff;\n img.data[pos + 1] = (tmp >> 8) & 0xff;\n img.data[pos + 2] = tmp & 0xff;\n img.data[pos + 3] = 0xff;\n pos += 4;\n }\n if (pos >= 4 * w * h) {\n ctx.putImageData(img, 0, 0);\n return pos = 0;\n }\n }\n\n function success(stream) {\n var video;\n if (webRtcOptions.context === \"webrtc\") {\n video = webRtcOptions.videoEl;\n if (navigator.mozGetUserMedia) {\n video.mozSrcObject = stream;\n } else {\n video.srcObject = stream;\n }\n return video.onerror = function(e) {\n return stream.stop();\n }\n } else {\n\n }\n }\n\n function deviceError(error) {\n alert(\"No camera available.\");\n console.log(error);\n return console.error(\"An error occurred: [CODE \" + error.code + \"]\");\n }\n\n // not doing anything now... for copying to a 2nd canvas\n function getSnapshot() {\n var video;\n // If the current context is WebRTC/getUserMedia (something\n // passed back from the shim to avoid doing further feature\n // detection), we handle getting video/images for our canvas \n // from our HTML5