| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- "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() {
 
-   var 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
 
-  */
 
- var _normalize = function normalize(value, min, max) {
 
-   return (value - min) * 255 / (max - min);
 
- };
 
- var getBounds = function getBounds(histogramChannel) {
 
-   return [histogramChannel.findIndex(function (value) {
 
-     return value > 0;
 
-   }), 255 - histogramChannel.slice().reverse().findIndex(function (value) {
 
-     return 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 = function _default() {
 
-   return {
 
-     normalize: function normalize(cb) {
 
-       var h = histogram.call(this); // store bounds (minimum and maximum values)
 
-       var 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) {
 
-         var r = this.bitmap.data[idx + 0];
 
-         var g = this.bitmap.data[idx + 1];
 
-         var 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;
 
- //# sourceMappingURL=index.js.map
 
 
  |