????
Current Path : C:/inetpub/vhost/invest.gdtsolutions.vn/api/node_modules/@jimp/plugin-normalize/dist/ |
Current File : C:/inetpub/vhost/invest.gdtsolutions.vn/api/node_modules/@jimp/plugin-normalize/dist/index.js |
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _utils = require("@jimp/utils"); /** * Get an image's histogram * @return {object} An object with an array of color occurrence counts for each channel (r,g,b) */ function histogram() { const histogram = { r: new Array(256).fill(0), g: new Array(256).fill(0), b: new Array(256).fill(0) }; this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, index) { histogram.r[this.bitmap.data[index + 0]]++; histogram.g[this.bitmap.data[index + 1]]++; histogram.b[this.bitmap.data[index + 2]]++; }); return histogram; } /** * Normalize values * @param {integer} value Pixel channel value. * @param {integer} min Minimum value for channel * @param {integer} max Maximum value for channel * @return {integer} normalized values */ const normalize = function (value, min, max) { return (value - min) * 255 / (max - min); }; const getBounds = function (histogramChannel) { return [histogramChannel.findIndex(value => value > 0), 255 - histogramChannel.slice().reverse().findIndex(value => value > 0)]; }; /** * Normalizes the image * @param {function(Error, Jimp)} cb (optional) a callback for when complete * @returns {Jimp} this for chaining of methods */ var _default = () => ({ normalize(cb) { const h = histogram.call(this); // store bounds (minimum and maximum values) const bounds = { r: getBounds(h.r), g: getBounds(h.g), b: getBounds(h.b) }; // apply value transformations this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) { const r = this.bitmap.data[idx + 0]; const g = this.bitmap.data[idx + 1]; const b = this.bitmap.data[idx + 2]; this.bitmap.data[idx + 0] = normalize(r, bounds.r[0], bounds.r[1]); this.bitmap.data[idx + 1] = normalize(g, bounds.g[0], bounds.g[1]); this.bitmap.data[idx + 2] = normalize(b, bounds.b[0], bounds.b[1]); }); if ((0, _utils.isNodePattern)(cb)) { cb.call(this, null, this); } return this; } }); exports.default = _default; module.exports = exports.default; module.exports.default = exports.default; //# sourceMappingURL=index.js.map