@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
JavaScript
/**
* @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=