Test/node_modules/multimath/lib/unsharp_mask/hsl_l16.js
2026-04-09 22:54:00 +07:00

19 lines
522 B
JavaScript

// 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;
};