| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 | 
							- "use strict";
 
- Object.defineProperty(exports, "__esModule", {
 
-   value: true
 
- });
 
- exports["default"] = void 0;
 
- var _utils = require("@jimp/utils");
 
- var _blurTables = require("./blur-tables");
 
- /*
 
-     Superfast Blur (0.5)
 
-     http://www.quasimondo.com/BoxBlurForCanvas/FastBlur.js
 
-     Copyright (c) 2011 Mario Klingemann
 
-     Permission is hereby granted, free of charge, to any person
 
-     obtaining a copy of this software and associated documentation
 
-     files (the "Software"), to deal in the Software without
 
-     restriction, including without limitation the rights to use,
 
-     copy, modify, merge, publish, distribute, sublicense, and/or sell
 
-     copies of the Software, and to permit persons to whom the
 
-     Software is furnished to do so, subject to the following
 
-     conditions:
 
-     The above copyright notice and this permission notice shall be
 
-     included in all copies or substantial portions of the Software.
 
-     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
-     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 
-     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 
-     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 
-     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 
-     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 
-     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 
-     OTHER DEALINGS IN THE SOFTWARE.
 
- */
 
- var _default = function _default() {
 
-   return {
 
-     /**
 
-      * A fast blur algorithm that produces similar effect to a Gaussian blur - but MUCH quicker
 
-      * @param {number} r the pixel radius of the blur
 
-      * @param {function(Error, Jimp)} cb (optional) a callback for when complete
 
-      * @returns {Jimp} this for chaining of methods
 
-      */
 
-     blur: function blur(r, cb) {
 
-       if (typeof r !== 'number') return _utils.throwError.call(this, 'r must be a number', cb);
 
-       if (r < 1) return _utils.throwError.call(this, 'r must be greater than 0', cb);
 
-       var rsum;
 
-       var gsum;
 
-       var bsum;
 
-       var asum;
 
-       var x;
 
-       var y;
 
-       var i;
 
-       var p;
 
-       var p1;
 
-       var p2;
 
-       var yp;
 
-       var yi;
 
-       var yw;
 
-       var pa;
 
-       var wm = this.bitmap.width - 1;
 
-       var hm = this.bitmap.height - 1; // const wh = this.bitmap.width * this.bitmap.height;
 
-       var rad1 = r + 1;
 
-       var mulSum = _blurTables.mulTable[r];
 
-       var shgSum = _blurTables.shgTable[r];
 
-       var red = [];
 
-       var green = [];
 
-       var blue = [];
 
-       var alpha = [];
 
-       var vmin = [];
 
-       var vmax = [];
 
-       var iterations = 2;
 
-       while (iterations-- > 0) {
 
-         yi = 0;
 
-         yw = 0;
 
-         for (y = 0; y < this.bitmap.height; y++) {
 
-           rsum = this.bitmap.data[yw] * rad1;
 
-           gsum = this.bitmap.data[yw + 1] * rad1;
 
-           bsum = this.bitmap.data[yw + 2] * rad1;
 
-           asum = this.bitmap.data[yw + 3] * rad1;
 
-           for (i = 1; i <= r; i++) {
 
-             p = yw + ((i > wm ? wm : i) << 2);
 
-             rsum += this.bitmap.data[p++];
 
-             gsum += this.bitmap.data[p++];
 
-             bsum += this.bitmap.data[p++];
 
-             asum += this.bitmap.data[p];
 
-           }
 
-           for (x = 0; x < this.bitmap.width; x++) {
 
-             red[yi] = rsum;
 
-             green[yi] = gsum;
 
-             blue[yi] = bsum;
 
-             alpha[yi] = asum;
 
-             if (y === 0) {
 
-               vmin[x] = ((p = x + rad1) < wm ? p : wm) << 2;
 
-               vmax[x] = (p = x - r) > 0 ? p << 2 : 0;
 
-             }
 
-             p1 = yw + vmin[x];
 
-             p2 = yw + vmax[x];
 
-             rsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];
 
-             gsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];
 
-             bsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];
 
-             asum += this.bitmap.data[p1] - this.bitmap.data[p2];
 
-             yi++;
 
-           }
 
-           yw += this.bitmap.width << 2;
 
-         }
 
-         for (x = 0; x < this.bitmap.width; x++) {
 
-           yp = x;
 
-           rsum = red[yp] * rad1;
 
-           gsum = green[yp] * rad1;
 
-           bsum = blue[yp] * rad1;
 
-           asum = alpha[yp] * rad1;
 
-           for (i = 1; i <= r; i++) {
 
-             yp += i > hm ? 0 : this.bitmap.width;
 
-             rsum += red[yp];
 
-             gsum += green[yp];
 
-             bsum += blue[yp];
 
-             asum += alpha[yp];
 
-           }
 
-           yi = x << 2;
 
-           for (y = 0; y < this.bitmap.height; y++) {
 
-             pa = asum * mulSum >>> shgSum;
 
-             this.bitmap.data[yi + 3] = pa; // normalize alpha
 
-             if (pa > 255) {
 
-               this.bitmap.data[yi + 3] = 255;
 
-             }
 
-             if (pa > 0) {
 
-               pa = 255 / pa;
 
-               this.bitmap.data[yi] = (rsum * mulSum >>> shgSum) * pa;
 
-               this.bitmap.data[yi + 1] = (gsum * mulSum >>> shgSum) * pa;
 
-               this.bitmap.data[yi + 2] = (bsum * mulSum >>> shgSum) * pa;
 
-             } else {
 
-               this.bitmap.data[yi + 2] = 0;
 
-               this.bitmap.data[yi + 1] = 0;
 
-               this.bitmap.data[yi] = 0;
 
-             }
 
-             if (x === 0) {
 
-               vmin[y] = ((p = y + rad1) < hm ? p : hm) * this.bitmap.width;
 
-               vmax[y] = (p = y - r) > 0 ? p * this.bitmap.width : 0;
 
-             }
 
-             p1 = x + vmin[y];
 
-             p2 = x + vmax[y];
 
-             rsum += red[p1] - red[p2];
 
-             gsum += green[p1] - green[p2];
 
-             bsum += blue[p1] - blue[p2];
 
-             asum += alpha[p1] - alpha[p2];
 
-             yi += this.bitmap.width << 2;
 
-           }
 
-         }
 
-       }
 
-       if ((0, _utils.isNodePattern)(cb)) {
 
-         cb.call(this, null, this);
 
-       }
 
-       return this;
 
-     }
 
-   };
 
- };
 
- exports["default"] = _default;
 
- //# sourceMappingURL=index.js.map
 
 
  |