Skip to content

Instantly share code, notes, and snippets.

@vakiliy
Last active May 25, 2018 08:48
Show Gist options
  • Save vakiliy/fceccb011fd31f76b47208930fcb239b to your computer and use it in GitHub Desktop.
Save vakiliy/fceccb011fd31f76b47208930fcb239b to your computer and use it in GitHub Desktop.
// Comment test
var ndviFunc = function({ h, s, v }, [_r, _g, _b, _a]) {
if (_r === 0 && _g === 0 && _b === 0) {
_a = 0;
}
let r, g, b, i, f, p, q, t;
i = Math.floor(h * 6);
f = h * 6 - i;
p = v * (1 - s);
q = v * (1 - f * s);
t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0: r = v; g = t; b = p; break;
case 1: r = q; g = v; b = p; break;
case 2: r = p; g = v; b = t; break;
case 3: r = p; g = q; b = v; break;
case 4: r = t; g = p; b = v; break;
case 5: r = v; g = p; b = q; break;
}
return {
r: Math.round(r * 255),
g: Math.round(g * 255),
b: Math.round(b * 255),
a: _a
};
};
self.addEventListener('message', function(e) {
var data = e.data;
for (let i = 0; i < data.data.length; i += 4) {
let NDVI = data.data[i] / 255;
let hsv_in = { h: NDVI * 0.33333, s: 1, v: 1 };
let {r, g, b, a} = ndviFunc(hsv_in, [data.data[i], data.data[i + 1], data.data[i + 2], data.data[i + 3]]);
data.data[i] = r;
data.data[i + 1] = g;
data.data[i + 2] = b;
data.data[i + 3] = a;
}
self.postMessage({ message: data });
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment