UNPKG

multimath

Version:

Core to create fast image math in WebAssembly and JS.

20 lines (17 loc) 522 B
// Calculates 16-bit precision HSL lightness from 8-bit rgba buffer // 'use strict'; 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; };