@onesy/utils
Version:
25 lines (24 loc) • 1.18 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const clamp_1 = __importDefault(require("./clamp"));
const rgbToHslPure_1 = __importDefault(require("./rgbToHslPure"));
const hslToRgbPure_1 = __importDefault(require("./hslToRgbPure"));
const canvasFilterSaturation = (value, canvas) => {
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const { data } = imageData;
for (let i = 0; i < data.length; i += 4) {
const [h, s_, l] = (0, rgbToHslPure_1.default)(data[i + 0], data[i + 1], data[i + 2]);
const s = (0, clamp_1.default)(Math.round(s_ + (s_ * (value / 100))), 0, 100);
const [r, g, b] = (0, hslToRgbPure_1.default)(h, s, l);
data[i + 0] = (0, clamp_1.default)(r, 0, 255);
data[i + 1] = (0, clamp_1.default)(g, 0, 255);
data[i + 2] = (0, clamp_1.default)(b, 0, 255);
}
context.putImageData(imageData, 0, 0);
return canvas;
};
exports.default = canvasFilterSaturation;
;