UNPKG

@asoftwareworld/form-builder-pro

Version:

ASW Form Builder Pro 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 b

79 lines 12.5 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdXRpbHMvaW1hZ2UtY3JvcC9yZXNpemUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUF5QixFQUFFLEtBQWEsRUFBRSxNQUFjO0lBQ2pGLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNwQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QixNQUFNLE9BQU8sR0FBRyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFNUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ04sTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRSxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3RCLE1BQU0s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LElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQzs0QkFDeEIsTUFBTSxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7d0JBQzlDLENBQUM7d0JBQ0QsSUFBSSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzdCLElBQUksSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDakMsSUFBSSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUNqQyxPQUFPLElBQUksTUFBTSxDQUFDO29CQUN0QixDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxPQUFPLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQztnQkFDL0IsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsT0FBTyxDQUFDO2dCQUMvQixLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxhQUFhLENBQUM7WUFDekMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUV2QixPQUFPO1FBQ1AsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFTVyAoQSBTb2Z0d2FyZSBXb3JsZCkgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiByZXNpemVDYW52YXMoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBXSURUSF9TT1VSQ0UgPSBjYW52YXMud2lkdGg7XG4gICAgY29uc3QgSEVJR0hUX1NPVVJDRSA9IGNhbnZhcy5oZWlnaHQ7XG4gICAgd2lkdGggPSBNYXRoLnJvdW5kKHdpZHRoKTtcbiAgICBoZWlnaHQgPSBNYXRoLnJvdW5kKGhlaWdodCk7XG5cbiAgICBjb25zdCBSQVRJT19XID0gV0lEVEhfU09VUkNFIC8gd2lkdGg7XG4gICAgY29uc3QgUkFUSU9fSCA9IEhFSUdIVF9TT1VSQ0UgLyBoZWlnaHQ7XG4gICAgY29uc3QgUkFUSU9fV19IQUxGID0gTWF0aC5jZWlsKFJBVElPX1cgLyAyKTtcbiAgICBjb25zdCBSQVRJT19IX0hBTEYgPSBNYXRoLmNlaWwoUkFUSU9fSCAvIDIpO1xuXG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgaWYgKGN0eCkge1xuICAgICAgICBjb25zdCBpbWcgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIFdJRFRIX1NPVVJDRSwgSEVJR0hUX1NPVVJDRSk7XG4gICAgICAgIGNvbnN0IGltZzIgPSBjdHguY3JlYXRlSW1hZ2VEYXRhKHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICBjb25zdCBkYXRhID0gaW1nLmRhdGE7XG4gICAgICAgIGNvbnN0IGRhdGEyID0gaW1nMi5kYXRhO1xuXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaGVpZ2h0OyBqKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2lkdGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHgyID0gKGkgKyBqICogd2lkdGgpICogNDtcbiAgICAgICAgICAgICAgICBjb25zdCBDRU5URVJfWSA9IGogKiBSQVRJT19IO1xuICAgICAgICAgICAgICAgIGxldCB3ZWlnaHQgPSAwO1xuICAgICAgICAgICAgICAgIGxldCB3ZWlnaHRzID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgV0VJR0hUU19BTFBIQSA9IDA7XG4gICAgICAgICAgICAgICAgbGV0IEdYX1IgPSAwO1xuICAgICAgICAgICAgICAgIGxldCBHWF9HID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgR1hfQiA9IDA7XG4gICAgICAgICAgICAgICAgbGV0IEdYX0EgPSAwO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgWFhfU1RBUlQgPSBNYXRoLmZsb29yKGkgKiBSQVRJT19XKTtcbiAgICAgICAgICAgICAgICBjb25zdCBZWV9TVEFSVCA9IE1hdGguZmxvb3IoaiAqIFJBVElPX0gpO1xuICAgICAgICAgICAgICAgIGxldCBYWF9TVE9QID0gTWF0aC5jZWlsKChpICsgMSkgKiBSQVRJT19XKTtcbiAgICAgICAgICAgICAgICBsZXQgWVlfU1RPUCA9IE1hdGguY2VpbCgoaiArIDEpICogUkFUSU9fSCk7XG4gICAgICAgICAgICAgICAgWFhfU1RPUCA9IE1hdGgubWluKFhYX1NUT1AsIFdJRFRIX1NPVVJDRSk7XG4gICAgICAgICAgICAgICAgWVlfU1RPUCA9IE1hdGgubWluKFlZX1NUT1AsIEhFSUdIVF9TT1VSQ0UpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgeXkgPSBZWV9TVEFSVDsgeXkgPCBZWV9TVE9QOyB5eSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGR5ID0gTWF0aC5hYnMoQ0VOVEVSX1kgLSB5eSkgLyBSQVRJT19IX0hBTEY7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IENFTlRFUl9YID0gaSAqIFJBVElPX1c7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHcwID0gZHkgKiBkeTsgLy8gcHJlLWNhbGMgcGFydCBvZiB3XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHh4ID0gWFhfU1RBUlQ7IHh4IDwgWFhfU1RPUDsgeHgrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZHggPSBNYXRoLmFicyhDRU5URVJfWCAtIHh4KSAvIFJBVElPX1dfSEFMRjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHcgPSBNYXRoLnNxcnQodzAgKyBkeCAqIGR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3ID49IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwaXhlbCB0b28gZmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBoZXJtaXRlIGZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0ID0gMiAqIHcgKiB3ICogdyAtIDMgKiB3ICogdyArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQT1NfWCA9IDQgKiAoeHggKyB5eSAqIFdJRFRIX1NPVVJDRSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHBoYVxuICAgICAgICAgICAgICAgICAgICAgICAgR1hfQSArPSB3ZWlnaHQgKiBkYXRhW1BPU19YICsgM107XG4gICAgICAgICAgICAgICAgICAgICAgICBXRUlHSFRTX0FMUEhBICs9IHdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFbUE9TX1ggKyAzXSA8IDI1NSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodCA9ICh3ZWlnaHQgKiBkYXRhW1BPU19YICsgM10pIC8gMjUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgR1hfUiArPSB3ZWlnaHQgKiBkYXRhW1BPU19YXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIEdYX0cgKz0gd2VpZ2h0ICogZGF0YVtQT1NfWCArIDFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgR1hfQiArPSB3ZWlnaHQgKiBkYXRhW1BPU19YICsgMl07XG4gICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHRzICs9IHdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkYXRhMlt4Ml0gPSBHWF9SIC8gd2VpZ2h0cztcbiAgICAgICAgICAgICAgICBkYXRhMlt4MiArIDFdID0gR1hfRyAvIHdlaWdodHM7XG4gICAgICAgICAgICAgICAgZGF0YTJbeDIgKyAyXSA9IEdYX0IgLyB3ZWlnaHRzO1xuICAgICAgICAgICAgICAgIGRhdGEyW3gyICsgM10gPSBHWF9BIC8gV0VJR0hUU19BTFBIQTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgICAgIC8vIGRyYXdcbiAgICAgICAgY3R4LnB1dEltYWdlRGF0YShpbWcyLCAwLCAwKTtcbiAgICB9XG59XG4iXX0=