{"version":3,"sources":["edgealphablurkernel5.js","gaussianblur.js","horizontalverticalalphablurkernel3.js","horizontalverticalalphablurkernel5.js","original.js","scale.js","verticalhorizontalblur.js"],"names":["FC","utils","registerBlender","imgData","background","cb","filterAlpha","defaultvalue","alpha","leftkernel","leftleftkernel","middlekernel","rightkernel","rightrightkernel","Math","max","ctx","tmpPx","i","j","tmpAlpha","tmpCanvas","document","createElement","image","px","data","length","width","height","slice","getContext","putImageData","globalCompositeOperation","drawImage","getImageData","FakeCation","config","left","right","bottom","top","scale","console","log","min","overlayCanvas","overlayBgCanvas","oCtx","hScale","useOverlay","StackBlur","canvasRGBA","globalAlpha"],"mappings":"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","file":"blenders.js","sourcesContent":["/*global FakeCation*/\n(function (FC) {\n \"use strict\";\n\n FC.utils.registerBlender('edgealphablurkernel5', function (imgData, background, cb) {\n var tmpCanvas = document.createElement('canvas'), ctx,\n image = document.createElement('canvas');\n var tmpPx, px = imgData.data, length = px.length, i,j, tmpAlpha;\n var leftleftkernel, leftkernel, middlekernel, rightkernel, rightrightkernel;\n\n image.width = imgData.width;\n image.height = imgData.height;\n tmpCanvas.width = imgData.width;\n tmpCanvas.height = imgData.height;\n\n function filterAlpha(defaultvalue) {\n var alpha = defaultvalue;\n if (leftleftkernel <= leftkernel && leftkernel <= middlekernel\n && middlekernel >= rightkernel && rightkernel >= rightrightkernel){\n // middle kernel top -> decrease alpha\n alpha = 0;\n } else if (leftleftkernel >= leftkernel && leftkernel >= middlekernel\n && middlekernel > rightkernel && rightkernel > rightrightkernel) {\n // leftleft kernel top -> median alpha\n alpha = leftleftkernel + rightrightkernel / 2;\n } else if (leftleftkernel <= leftkernel && leftkernel <= middlekernel\n && middlekernel < rightkernel && rightkernel < rightrightkernel) {\n // rightright kernel top -> median alpha\n alpha = leftleftkernel + rightrightkernel / 2;\n } else if (leftleftkernel >= leftkernel && leftkernel <= middlekernel\n && middlekernel <= rightkernel && rightkernel <= rightrightkernel) {\n // middle kernel bottom -> increase alpha\n alpha = Math.max(leftleftkernel, rightrightkernel);\n }\n return alpha;\n }\n\n for (j = 0; j < 1; j++){\n tmpPx = px.slice();\n\n for (i = 3; i < length; i=i+4){\n leftleftkernel = tmpPx[i - 4 * 2] || tmpPx[i];\n leftkernel = tmpPx[i - 4] || tmpPx[i];\n middlekernel = tmpPx[i];\n rightkernel = tmpPx[i + 4] || tmpPx[i];\n rightrightkernel = tmpPx[i + 4 * 2] || tmpPx[i];\n tmpAlpha = filterAlpha(leftleftkernel, leftkernel, middlekernel, rightkernel, rightrightkernel, px[i]);\n if (tmpAlpha === 0){\n px[i] = tmpPx[i];\n } else {\n px[i] = 0;\n }\n }\n }\n\n image.getContext('2d').putImageData(imgData, 0, 0);\n\n ctx = tmpCanvas.getContext('2d');\n\n ctx.globalCompositeOperation = 'source-over'; // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n\n ctx.drawImage(background, 0, 0);\n ctx.drawImage(image, 0, 0);\n\n cb(ctx.getImageData(0, 0, imgData.width, imgData.height));\n });\n}(FakeCation));\n","/*global FakeCation*/\n(function (FC) {\n \"use strict\";\n\n FC.utils.registerBlender('gaussianblur', function (imgData, background, cb, config) {\n var tmpCanvas = document.createElement('canvas'),\n ctx,\n image = document.createElement('canvas'),\n scale = config.scale || 1,\n left,\n right,\n bottom,\n top;\n\n image.width = imgData.width;\n image.height = imgData.height;\n tmpCanvas.width = background.width;\n tmpCanvas.height = background.height;\n\n left = (config.left || 0) -5;\n right = left + image.width * scale;\n\n bottom = tmpCanvas.height + (config.bottom || 0) + 5;\n top = bottom - image.height * scale;\n\n console.log(tmpCanvas.width, tmpCanvas.height);\n console.log(image.width, image.height);\n\n /* TODO\n var px = imgData.data;\n\n for (var j = 0; j < 2; j++) {\n var tmpPx = new Uint8ClampedArray(px);\n\n for (var i = 0, len = px.length; i < len; i++) {\n if (i % 4 === 3) {\n continue;\n }\n\n px[i] = (tmpPx[i] + (tmpPx[i - 4] || tmpPx[i]) + (tmpPx[i + 4] || tmpPx[i]) + (tmpPx[i - 4 * imgData.width] || tmpPx[i]) + (tmpPx[i + 4 * imgData.width] || tmpPx[i]) + (tmpPx[i - 4 * imgData.width] - 4 || tmpPx[i]) + (tmpPx[i + 4 * imgData.width] + 4 || tmpPx[i]) + (tmpPx[i - 4 * imgData.width] + 4 || tmpPx[i]) + (tmpPx[i + 4 * imgData.width] - 4 || tmpPx[i])) / 9;\n }\n j++;\n }\n */\n\n image.getContext('2d').putImageData(imgData, 0, 0);\n\n ctx = tmpCanvas.getContext('2d');\n\n ctx.globalCompositeOperation = 'source-over'; // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n\n ctx.drawImage(background, 0, 0);\n ctx.drawImage(image, left, top, right - left, bottom - top);\n\n cb(ctx.getImageData(0, 0, tmpCanvas.width, tmpCanvas.height));\n });\n}(FakeCation));\n","/*global FakeCation*/\n(function (FC) {\n \"use strict\";\n\n FC.utils.registerBlender('horizontalverticalalphablurkernel3', function (imgData, background, cb) {\n var tmpCanvas = document.createElement('canvas'), ctx,\n image = document.createElement('canvas');\n var tmpPx, px = imgData.data, length = px.length, i,j;\n var leftkernel, middlekernel, rightkernel;\n\n image.width = imgData.width;\n image.height = imgData.height;\n tmpCanvas.width = imgData.width;\n tmpCanvas.height = imgData.height;\n\n function filterAlpha(defaultvalue) {\n var alpha = defaultvalue;\n if (leftkernel < middlekernel && middlekernel > rightkernel){\n // middle kernel top -> decrease alpha\n alpha = Math.min(leftkernel, rightkernel);\n } else if (leftkernel > middlekernel && middlekernel > rightkernel) {\n // left kernel top -> median alpha\n alpha = leftkernel + rightkernel / 2;\n } else if (leftkernel < middlekernel && middlekernel < rightkernel) {\n // right kernel top -> median alpha\n alpha = leftkernel + rightkernel / 2;\n } else if (leftkernel > middlekernel && middlekernel < rightkernel) {\n // middle kernel bottom -> increase alpha\n alpha = Math.max(leftkernel, rightkernel);\n }\n return alpha;\n }\n\n for (j = 0; j < 1; j++){\n tmpPx = px.slice();\n\n for (i = 3; i < length; i=i+4){\n leftkernel = tmpPx[i - 4] || tmpPx[i];\n middlekernel = tmpPx[i];\n rightkernel = tmpPx[i + 4] || tmpPx[i];\n px[i] = filterAlpha(leftkernel, middlekernel, rightkernel, px[i]);\n }\n\n for (i = 3; i < length; i=i+4){\n leftkernel = tmpPx[i - 4 * imgData.width] || tmpPx[i];\n middlekernel = tmpPx[i];\n rightkernel = tmpPx[i + 4 * imgData.width] || tmpPx[i];\n px[i] = filterAlpha(leftkernel, middlekernel, rightkernel, px[i]);\n }\n }\n\n image.getContext('2d').putImageData(imgData, 0, 0);\n\n ctx = tmpCanvas.getContext('2d');\n\n ctx.globalCompositeOperation = 'source-over'; // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n\n ctx.drawImage(background, 0, 0);\n ctx.drawImage(image, 0, 0);\n\n cb(ctx.getImageData(0, 0, imgData.width, imgData.height));\n });\n}(FakeCation));\n","/*global FakeCation*/\n(function (FC) {\n \"use strict\";\n\n FC.utils.registerBlender('horizontalverticalalphablurkernel5', function (imgData, background, cb) {\n var tmpCanvas = document.createElement('canvas'), ctx,\n image = document.createElement('canvas');\n var tmpPx, px = imgData.data, length = px.length, i,j;\n var leftleftkernel, leftkernel, middlekernel, rightkernel, rightrightkernel;\n\n image.width = imgData.width;\n image.height = imgData.height;\n tmpCanvas.width = imgData.width;\n tmpCanvas.height = imgData.height;\n\n function filterAlpha(defaultvalue) {\n var alpha = defaultvalue;\n if (leftleftkernel <= leftkernel && leftkernel <= middlekernel\n && middlekernel >= rightkernel && rightkernel >= rightrightkernel){\n // middle kernel top -> decrease alpha\n alpha = Math.min(leftleftkernel, rightrightkernel);\n } else if (leftleftkernel > leftkernel && leftkernel > middlekernel\n && middlekernel > rightkernel && rightkernel > rightrightkernel) {\n // leftleft kernel top -> median alpha\n alpha = leftleftkernel + rightrightkernel / 2;\n } else if (leftleftkernel < leftkernel && leftkernel < middlekernel\n && middlekernel < rightkernel && rightkernel < rightrightkernel) {\n // rightright kernel top -> median alpha\n alpha = leftleftkernel + rightrightkernel / 2;\n } else if (leftleftkernel > leftkernel && leftkernel < middlekernel\n && middlekernel < rightkernel && rightkernel < rightrightkernel) {\n // middle kernel bottom -> increase alpha\n alpha = Math.max(leftleftkernel, rightrightkernel);\n }\n return alpha;\n }\n\n for (j = 0; j < 1; j++){\n tmpPx = px.slice();\n\n for (i = 3; i < length; i=i+4){\n leftleftkernel = tmpPx[i - 4 * 2] || tmpPx[i];\n leftkernel = tmpPx[i - 4] || tmpPx[i];\n middlekernel = tmpPx[i];\n rightkernel = tmpPx[i + 4] || tmpPx[i];\n rightrightkernel = tmpPx[i + 4 * 2] || tmpPx[i];\n px[i] = filterAlpha(leftleftkernel, leftkernel, middlekernel, rightkernel, rightrightkernel, px[i]);\n }\n\n for (i = 3; i < length; i=i+4){\n leftleftkernel = tmpPx[i - 4 * 2 * imgData.width] || tmpPx[i];\n leftkernel = tmpPx[i - 4 * imgData.width] || tmpPx[i];\n middlekernel = tmpPx[i];\n rightkernel = tmpPx[i + 4 * imgData.width] || tmpPx[i];\n rightrightkernel = tmpPx[i + 4 * 2 * imgData.width] || tmpPx[i];\n px[i] = filterAlpha(leftleftkernel, leftkernel, middlekernel, rightkernel, rightrightkernel, px[i]);\n }\n }\n\n image.getContext('2d').putImageData(imgData, 0, 0);\n\n ctx = tmpCanvas.getContext('2d');\n\n ctx.globalCompositeOperation = 'source-over'; // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n\n ctx.drawImage(background, 0, 0);\n ctx.drawImage(image, 0, 0);\n\n cb(ctx.getImageData(0, 0, imgData.width, imgData.height));\n });\n}(FakeCation));\n","/*global FakeCation*/\n(function (FC) {\n \"use strict\";\n\n FC.utils.registerBlender('original', function (imgData, background, cb) {\n var tmpCanvas = document.createElement('canvas'), ctx,\n image = document.createElement('canvas');\n\n image.width = imgData.width;\n image.height = imgData.height;\n tmpCanvas.width = imgData.width;\n tmpCanvas.height = imgData.height;\n\n image.getContext('2d').putImageData(imgData, 0, 0);\n\n ctx = tmpCanvas.getContext('2d');\n\n ctx.globalCompositeOperation = 'source-over'; // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n\n ctx.drawImage(background, 0, 0);\n ctx.drawImage(image, 0, 0);\n\n cb(ctx.getImageData(0, 0, imgData.width, imgData.height));\n });\n}(FakeCation));\n","/*global FakeCation, StackBlur*/\n(function (FC) {\n \"use strict\";\n\n FC.utils.registerBlender('scale', function (imgData, background, cb, config) {\n var tmpCanvas = document.createElement('canvas'),\n overlayCanvas, overlayBgCanvas,\n ctx, oCtx,\n image = document.createElement('canvas'),\n scale = config && config.scale || .7,\n hScale,\n useOverlay = config && config.useOverlay || false, // TODO refactor out from here\n left,\n right,\n bottom,\n top;\n\n image.width = imgData.width;\n image.height = imgData.height;\n tmpCanvas.width = background.width;\n tmpCanvas.height = background.height;\n\n hScale = background.height / image.height * scale;\n\n if (hScale > 1) {\n hScale = Math.min(background.width / image.width, hScale);\n }\n\n left = config.left || 0;\n right = left + image.width * hScale;\n\n bottom = tmpCanvas.height + (config.bottom || 0);\n top = bottom - image.height * hScale;\n\n image.getContext('2d').putImageData(imgData, 0, 0);\n\n ctx = tmpCanvas.getContext('2d');\n\n ctx.globalCompositeOperation = 'source-over'; // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n\n if (useOverlay) {\n overlayCanvas = document.createElement('canvas');\n overlayCanvas.width = background.width;\n overlayCanvas.height = background.height;\n oCtx = overlayCanvas.getContext('2d');\n oCtx.drawImage(image, left, top, right - left, bottom - top);\n\n overlayBgCanvas = document.createElement('canvas');\n overlayBgCanvas.width = background.width;\n overlayBgCanvas.height = background.height;\n overlayBgCanvas.getContext('2d').drawImage(background, 0, 0);\n\n StackBlur.canvasRGBA(overlayBgCanvas, 0, 0, tmpCanvas.width, tmpCanvas.height, 30);\n\n oCtx.globalAlpha = 0.3;\n oCtx.globalCompositeOperation = \"overlay\";\n\n oCtx.drawImage(overlayCanvas, 0, 0);\n\n ctx.drawImage(background, 0, 0);\n ctx.drawImage(overlayCanvas, 0, 0);\n } else {\n ctx.drawImage(background, 0, 0);\n ctx.drawImage(image, left, top, right - left, bottom - top);\n }\n\n cb(ctx.getImageData(0, 0, tmpCanvas.width, tmpCanvas.height));\n });\n}(FakeCation));\n","/*global FakeCation*/\n(function (FC) {\n \"use strict\";\n\n FC.utils.registerBlender('verticalhorizontalblur', function (imgData, background, cb) {\n var tmpCanvas = document.createElement('canvas'), ctx,\n image = document.createElement('canvas');\n\n image.width = imgData.width;\n image.height = imgData.height;\n tmpCanvas.width = imgData.width;\n tmpCanvas.height = imgData.height;\n\n var px = imgData.data;\n\n var j = 0;\n var i = 0;\n var length = px.length;\n var tmpPx;\n\n for (j = 0; j < 1; j++){\n tmpPx = px.slice();\n\n for (i = 0; i < length; i++){\n if (i % 4 === 3 ) {continue;}\n\n px[i] = (tmpPx[i]\n + (tmpPx[i - 4] || tmpPx[i])\n + (tmpPx[i + 4] || tmpPx[i])\n + (tmpPx[i - 4 * 2] || tmpPx[i])\n + (tmpPx[i + 4 * 2] || tmpPx[i])\n ) / 5;\n }\n j++;\n }\n\n for (j = 0; j < 1; j++){\n tmpPx = px.slice();\n\n for (i = 0; i < length; i++){\n if (i % 4 === 3 ) {continue;}\n\n px[i] = (tmpPx[i]\n + (tmpPx[i - 4 * imgData.width] || tmpPx[i])\n + (tmpPx[i + 4 * imgData.width] || tmpPx[i])\n + (tmpPx[i - 4 * 2 * imgData.width] || tmpPx[i])\n + (tmpPx[i + 4 * 2 * imgData.width] || tmpPx[i])\n ) / 5;\n }\n j++;\n }\n\n image.getContext('2d').putImageData(imgData, 0, 0);\n\n ctx = tmpCanvas.getContext('2d');\n\n ctx.globalCompositeOperation = 'source-over'; // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n\n ctx.drawImage(background, 0, 0);\n ctx.drawImage(image, 0, 0);\n\n cb(ctx.getImageData(0, 0, imgData.width, imgData.height));\n });\n}(FakeCation));\n"],"sourceRoot":"/source/"}