multimath
Version:
Core to create fast image math in WebAssembly and JS.
20 lines (17 loc) • 522 B
JavaScript
// Calculates 16-bit precision HSL lightness from 8-bit rgba buffer
//
;
module.exports = function hsl_l16_js(img, width, height) {
var size = width * height;
var out = new Uint16Array(size);
var r, g, b, min, max;
for (var i = 0; i < size; i++) {
r = img[4 * i];
g = img[4 * i + 1];
b = img[4 * i + 2];
max = (r >= g && r >= b) ? r : (g >= b && g >= r) ? g : b;
min = (r <= g && r <= b) ? r : (g <= b && g <= r) ? g : b;
out[i] = (max + min) * 257 >> 1;
}
return out;
};