UNPKG

@asoftwareworld/form-builder

Version:

ASW Form Builder helps you with rapid development and designed web forms which includes several controls. The key feature of Form Builder is to make your content attractive and effective. We can customize our control at run time and preview the same befor

79 lines 12.8 kB
/** * @license * Copyright ASW (A Software World) All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file */ export function resizeCanvas(canvas, width, height) { const WIDTH_SOURCE = canvas.width; const HEIGHT_SOURCE = canvas.height; width = Math.round(width); height = Math.round(height); const RATIO_W = WIDTH_SOURCE / width; const RATIO_H = HEIGHT_SOURCE / height; const RATIO_W_HALF = Math.ceil(RATIO_W / 2); const RATIO_H_HALF = Math.ceil(RATIO_H / 2); const ctx = canvas.getContext('2d'); if (ctx) { const img = ctx.getImageData(0, 0, WIDTH_SOURCE, HEIGHT_SOURCE); const img2 = ctx.createImageData(width, height); const data = img.data; const data2 = img2.data; for (let j = 0; j < height; j++) { for (let i = 0; i < width; i++) { const x2 = (i + j * width) * 4; const CENTER_Y = j * RATIO_H; let weight = 0; let weights = 0; let WEIGHTS_ALPHA = 0; let GX_R = 0; let GX_G = 0; let GX_B = 0; let GX_A = 0; const XX_START = Math.floor(i * RATIO_W); const YY_START = Math.floor(j * RATIO_H); let XX_STOP = Math.ceil((i + 1) * RATIO_W); let YY_STOP = Math.ceil((j + 1) * RATIO_H); XX_STOP = Math.min(XX_STOP, WIDTH_SOURCE); YY_STOP = Math.min(YY_STOP, HEIGHT_SOURCE); for (let yy = YY_START; yy < YY_STOP; yy++) { const dy = Math.abs(CENTER_Y - yy) / RATIO_H_HALF; const CENTER_X = i * RATIO_W; const w0 = dy * dy; // pre-calc part of w for (let xx = XX_START; xx < XX_STOP; xx++) { const dx = Math.abs(CENTER_X - xx) / RATIO_W_HALF; const w = Math.sqrt(w0 + dx * dx); if (w >= 1) { // pixel too far continue; } // hermite filter weight = 2 * w * w * w - 3 * w * w + 1; const POS_X = 4 * (xx + yy * WIDTH_SOURCE); // alpha GX_A += weight * data[POS_X + 3]; WEIGHTS_ALPHA += weight; // colors if (data[POS_X + 3] < 255) { weight = weight * data[POS_X + 3] / 250; } GX_R += weight * data[POS_X]; GX_G += weight * data[POS_X + 1]; GX_B += weight * data[POS_X + 2]; weights += weight; } } data2[x2] = GX_R / weights; data2[x2 + 1] = GX_G / weights; data2[x2 + 2] = GX_B / weights; data2[x2 + 3] = GX_A / WEIGHTS_ALPHA; } } canvas.width = width; canvas.height = height; // draw ctx.putImageData(img2, 0, 0); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaW1hZ2UtY3JvcC91dGlscy9yZXNpemUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUF5QixFQUFFLEtBQWEsRUFBRSxNQUFjO0lBQ2pGLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNwQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QixNQUFNLE9BQU8sR0FBRyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFNUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ04sTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRSxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3RCLE1BQU0s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LElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQzs0QkFDeEIsTUFBTSxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQzt3QkFDNUMsQ0FBQzt3QkFDRCxJQUFJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDN0IsSUFBSSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUNqQyxJQUFJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ2pDLE9BQU8sSUFBSSxNQUFNLENBQUM7b0JBQ3RCLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQztnQkFDM0IsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsT0FBTyxDQUFDO2dCQUMvQixLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxPQUFPLENBQUM7Z0JBQy9CLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLGFBQWEsQ0FBQztZQUN6QyxDQUFDO1FBQ0wsQ0FBQztRQUdELE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXZCLE9BQU87UUFDUCxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEFTVyAoQSBTb2Z0d2FyZSBXb3JsZCkgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZVxyXG4gKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNpemVDYW52YXMoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IFdJRFRIX1NPVVJDRSA9IGNhbnZhcy53aWR0aDtcclxuICAgIGNvbnN0IEhFSUdIVF9TT1VSQ0UgPSBjYW52YXMuaGVpZ2h0O1xyXG4gICAgd2lkdGggPSBNYXRoLnJvdW5kKHdpZHRoKTtcclxuICAgIGhlaWdodCA9IE1hdGgucm91bmQoaGVpZ2h0KTtcclxuXHJcbiAgICBjb25zdCBSQVRJT19XID0gV0lEVEhfU09VUkNFIC8gd2lkdGg7XHJcbiAgICBjb25zdCBSQVRJT19IID0gSEVJR0hUX1NPVVJDRSAvIGhlaWdodDtcclxuICAgIGNvbnN0IFJBVElPX1dfSEFMRiA9IE1hdGguY2VpbChSQVRJT19XIC8gMik7XHJcbiAgICBjb25zdCBSQVRJT19IX0hBTEYgPSBNYXRoLmNlaWwoUkFUSU9fSCAvIDIpO1xyXG5cclxuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgaWYgKGN0eCkge1xyXG4gICAgICAgIGNvbnN0IGltZyA9IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgV0lEVEhfU09VUkNFLCBIRUlHSFRfU09VUkNFKTtcclxuICAgICAgICBjb25zdCBpbWcyID0gY3R4LmNyZWF0ZUltYWdlRGF0YSh3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICBjb25zdCBkYXRhID0gaW1nLmRhdGE7XHJcbiAgICAgICAgY29uc3QgZGF0YTIgPSBpbWcyLmRhdGE7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaGVpZ2h0OyBqKyspIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aWR0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MiA9IChpICsgaiAqIHdpZHRoKSAqIDQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBDRU5URVJfWSA9IGogKiBSQVRJT19IO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdlaWdodCA9IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2VpZ2h0cyA9IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgV0VJR0hUU19BTFBIQSA9IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgR1hfUiA9IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgR1hfRyA9IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgR1hfQiA9IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgR1hfQSA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgWFhfU1RBUlQgPSBNYXRoLmZsb29yKGkgKiBSQVRJT19XKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFlZX1NUQVJUID0gTWF0aC5mbG9vcihqICogUkFUSU9fSCk7XHJcbiAgICAgICAgICAgICAgICBsZXQgWFhfU1RPUCA9IE1hdGguY2VpbCgoaSArIDEpICogUkFUSU9fVyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgWVlfU1RPUCA9IE1hdGguY2VpbCgoaiArIDEpICogUkFUSU9fSCk7XHJcbiAgICAgICAgICAgICAgICBYWF9TVE9QID0gTWF0aC5taW4oWFhfU1RPUCwgV0lEVEhfU09VUkNFKTtcclxuICAgICAgICAgICAgICAgIFlZX1NUT1AgPSBNYXRoLm1pbihZWV9TVE9QLCBIRUlHSFRfU09VUkNFKTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB5eSA9IFlZX1NUQVJUOyB5eSA8IFlZX1NUT1A7IHl5KyspIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkeSA9IE1hdGguYWJzKENFTlRFUl9ZIC0geXkpIC8gUkFUSU9fSF9IQUxGO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IENFTlRFUl9YID0gaSAqIFJBVElPX1c7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdzAgPSBkeSAqIGR5OyAvLyBwcmUtY2FsYyBwYXJ0IG9mIHdcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCB4eCA9IFhYX1NUQVJUOyB4eCA8IFhYX1NUT1A7IHh4KyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZHggPSBNYXRoLmFicyhDRU5URVJfWCAtIHh4KSAvIFJBVElPX1dfSEFMRjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdyA9IE1hdGguc3FydCh3MCArIGR4ICogZHgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodyA+PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwaXhlbCB0b28gZmFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBoZXJtaXRlIGZpbHRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQgPSAyICogdyAqIHcgKiB3IC0gMyAqIHcgKiB3ICsgMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUE9TX1ggPSA0ICogKHh4ICsgeXkgKiBXSURUSF9TT1VSQ0UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHBoYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBHWF9BICs9IHdlaWdodCAqIGRhdGFbUE9TX1ggKyAzXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgV0VJR0hUU19BTFBIQSArPSB3ZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtQT1NfWCArIDNdIDwgMjU1KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQgPSB3ZWlnaHQgKiBkYXRhW1BPU19YICsgM10gLyAyNTA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgR1hfUiArPSB3ZWlnaHQgKiBkYXRhW1BPU19YXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgR1hfRyArPSB3ZWlnaHQgKiBkYXRhW1BPU19YICsgMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEdYX0IgKz0gd2VpZ2h0ICogZGF0YVtQT1NfWCArIDJdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHRzICs9IHdlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBkYXRhMlt4Ml0gPSBHWF9SIC8gd2VpZ2h0cztcclxuICAgICAgICAgICAgICAgIGRhdGEyW3gyICsgMV0gPSBHWF9HIC8gd2VpZ2h0cztcclxuICAgICAgICAgICAgICAgIGRhdGEyW3gyICsgMl0gPSBHWF9CIC8gd2VpZ2h0cztcclxuICAgICAgICAgICAgICAgIGRhdGEyW3gyICsgM10gPSBHWF9BIC8gV0VJR0hUU19BTFBIQTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcblxyXG4gICAgICAgIC8vIGRyYXdcclxuICAgICAgICBjdHgucHV0SW1hZ2VEYXRhKGltZzIsIDAsIDApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==