UNPKG

medium-image-progressive

Version:

Medium's progressive image style

1 lines 42.8 kB
{"version":3,"file":"react.js","sources":["../src/stackblur.js","../src/style.js","../src/react.js"],"sourcesContent":["/*\n StackBlur - a fast almost Gaussian Blur For Canvas\n\n Version: 0.5\n Author: Mario Klingemann\n Contact: mario@quasimondo.com\n Website: http://www.quasimondo.com/StackBlurForCanvas\n Twitter: @quasimondo\n\n In case you find this class useful - especially in commercial projects -\n I am not totally unhappy for a small donation to my PayPal account\n mario@quasimondo.de\n\n Or support me on flattr:\n https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript\n\n Copyright (c) 2010 Mario Klingemann\n\n Permission is hereby granted, free of charge, to any person\n obtaining a copy of this software and associated documentation\n files (the \"Software\"), to deal in the Software without\n restriction, including without limitation the rights to use,\n copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the\n Software is furnished to do so, subject to the following\n conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n OTHER DEALINGS IN THE SOFTWARE.\n */\n\n\nvar mul_table = [\n 512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,\n 454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,\n 482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,\n 437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,\n 497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,\n 320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,\n 446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,\n 329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,\n 505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,\n 399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,\n 324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,\n 268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,\n 451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,\n 385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,\n 332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,\n 289,287,285,282,280,278,275,273,271,269,267,265,263,261,259];\n\n\nvar shg_table = [\n 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17,\n 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19,\n 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 ];\n\n\nfunction processImage(img, canvas, radius, blurAlphaChannel)\n{\n if (typeof(img) == 'string') {\n var img = document.getElementById(img);\n }\n else if (typeof HTMLImageElement !== 'undefined' && !img instanceof HTMLImageElement) {\n return;\n }\n var w = img.naturalWidth;\n var h = img.naturalHeight;\n\n if (typeof(canvas) == 'string') {\n var canvas = document.getElementById(canvas);\n }\n else if (typeof HTMLCanvasElement !== 'undefined' && !canvas instanceof HTMLCanvasElement) {\n return;\n }\n\n // canvas.style.width = w + 'px';\n // canvas.style.height = h + 'px';\n // console.log(w, h, img, img.naturalHeight)\n canvas.width = w;\n canvas.height = h;\n\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0);\n\n if (isNaN(radius) || radius < 1) return;\n\n if (blurAlphaChannel)\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n else\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n}\n\nfunction getImageDataFromCanvas(canvas, top_x, top_y, width, height)\n{\n if (typeof(canvas) == 'string')\n var canvas = document.getElementById(canvas);\n else if (typeof HTMLCanvasElement !== 'undefined' && !canvas instanceof HTMLCanvasElement)\n return;\n\n var context = canvas.getContext('2d');\n var imageData;\n\n try {\n try {\n imageData = context.getImageData(top_x, top_y, width, height);\n } catch(e) {\n throw new Error(\"unable to access local image data: \" + e);\n return;\n }\n } catch(e) {\n throw new Error(\"unable to access image data: \" + e);\n }\n\n return imageData;\n}\n\nfunction processCanvasRGBA(canvas, top_x, top_y, width, height, radius)\n{\n if (isNaN(radius) || radius < 1) return;\n radius |= 0;\n\n var imageData = getImageDataFromCanvas(canvas, top_x, top_y, width, height);\n\n imageData = processImageDataRGBA(imageData, top_x, top_y, width, height, radius);\n\n canvas.getContext('2d').putImageData(imageData, top_x, top_y);\n}\n\nfunction processImageDataRGBA(imageData, top_x, top_y, width, height, radius)\n{\n var pixels = imageData.data;\n\n var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum,\n r_out_sum, g_out_sum, b_out_sum, a_out_sum,\n r_in_sum, g_in_sum, b_in_sum, a_in_sum,\n pr, pg, pb, pa, rbs;\n\n var div = radius + radius + 1;\n var w4 = width << 2;\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n var stackStart = new BlurStack();\n var stack = stackStart;\n for (i = 1; i < div; i++)\n {\n stack = stack.next = new BlurStack();\n if (i == radiusPlus1) var stackEnd = stack;\n }\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n\n yw = yi = 0;\n\n var mul_sum = mul_table[radius];\n var shg_sum = shg_table[radius];\n\n for (y = 0; y < height; y++)\n {\n r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi+3]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++)\n {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n for (i = 1; i < radiusPlus1; i++)\n {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[p+1])) * rbs;\n b_sum += (stack.b = (pb = pixels[p+2])) * rbs;\n a_sum += (stack.a = (pa = pixels[p+3])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n\n stack = stack.next;\n }\n\n\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++)\n {\n pixels[yi+3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa != 0)\n {\n pa = 255 / pa;\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi+1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi+2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n } else {\n pixels[yi] = pixels[yi+1] = pixels[yi+2] = 0;\n }\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n\n r_in_sum += (stackIn.r = pixels[p]);\n g_in_sum += (stackIn.g = pixels[p+1]);\n b_in_sum += (stackIn.b = pixels[p+2]);\n a_in_sum += (stackIn.a = pixels[p+3]);\n\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n a_out_sum += (pa = stackOut.a);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n\n stackOut = stackOut.next;\n\n yi += 4;\n }\n yw += width;\n }\n\n\n for (x = 0; x < width; x++)\n {\n g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi+3]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++)\n {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n yp = width;\n\n for (i = 1; i <= radius; i++)\n {\n yi = (yp + x) << 2;\n\n r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[yi+1])) * rbs;\n b_sum += (stack.b = (pb = pixels[yi+2])) * rbs;\n a_sum += (stack.a = (pa = pixels[yi+3])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n\n stack = stack.next;\n\n if(i < heightMinus1)\n {\n yp += width;\n }\n }\n\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++)\n {\n p = yi << 2;\n pixels[p+3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa > 0)\n {\n pa = 255 / pa;\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[p+1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[p+2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n } else {\n pixels[p] = pixels[p+1] = pixels[p+2] = 0;\n }\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n\n p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2;\n\n r_sum += (r_in_sum += (stackIn.r = pixels[p]));\n g_sum += (g_in_sum += (stackIn.g = pixels[p+1]));\n b_sum += (b_in_sum += (stackIn.b = pixels[p+2]));\n a_sum += (a_in_sum += (stackIn.a = pixels[p+3]));\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n a_out_sum += (pa = stackOut.a);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n\n stackOut = stackOut.next;\n\n yi += width;\n }\n }\n return imageData;\n}\n\nfunction processCanvasRGB(canvas, top_x, top_y, width, height, radius)\n{\n if (isNaN(radius) || radius < 1) return;\n radius |= 0;\n\n var imageData = getImageDataFromCanvas(canvas, top_x, top_y, width, height);\n imageData = processImageDataRGB(imageData, top_x, top_y, width, height, radius);\n\n canvas.getContext('2d').putImageData(imageData, top_x, top_y);\n}\n\nfunction processImageDataRGB(imageData, top_x, top_y, width, height, radius)\n{\n var pixels = imageData.data;\n\n var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum,\n r_out_sum, g_out_sum, b_out_sum,\n r_in_sum, g_in_sum, b_in_sum,\n pr, pg, pb, rbs;\n\n var div = radius + radius + 1;\n var w4 = width << 2;\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n var stackStart = new BlurStack();\n var stack = stackStart;\n for (i = 1; i < div; i++)\n {\n stack = stack.next = new BlurStack();\n if (i == radiusPlus1) var stackEnd = stack;\n }\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n\n yw = yi = 0;\n\n var mul_sum = mul_table[radius];\n var shg_sum = shg_table[radius];\n\n for (y = 0; y < height; y++)\n {\n r_in_sum = g_in_sum = b_in_sum = r_sum = g_sum = b_sum = 0;\n\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++)\n {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n for (i = 1; i < radiusPlus1; i++)\n {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[p+1])) * rbs;\n b_sum += (stack.b = (pb = pixels[p+2])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n\n stack = stack.next;\n }\n\n\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++)\n {\n pixels[yi] = (r_sum * mul_sum) >> shg_sum;\n pixels[yi+1] = (g_sum * mul_sum) >> shg_sum;\n pixels[yi+2] = (b_sum * mul_sum) >> shg_sum;\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n\n r_in_sum += (stackIn.r = pixels[p]);\n g_in_sum += (stackIn.g = pixels[p+1]);\n b_in_sum += (stackIn.b = pixels[p+2]);\n\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n\n stackOut = stackOut.next;\n\n yi += 4;\n }\n yw += width;\n }\n\n\n for (x = 0; x < width; x++)\n {\n g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0;\n\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi+1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi+2]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++)\n {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n yp = width;\n\n for (i = 1; i <= radius; i++)\n {\n yi = (yp + x) << 2;\n\n r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[yi+1])) * rbs;\n b_sum += (stack.b = (pb = pixels[yi+2])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n\n stack = stack.next;\n\n if(i < heightMinus1)\n {\n yp += width;\n }\n }\n\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++)\n {\n p = yi << 2;\n pixels[p] = (r_sum * mul_sum) >> shg_sum;\n pixels[p+1] = (g_sum * mul_sum) >> shg_sum;\n pixels[p+2] = (b_sum * mul_sum) >> shg_sum;\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n\n p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2;\n\n r_sum += (r_in_sum += (stackIn.r = pixels[p]));\n g_sum += (g_in_sum += (stackIn.g = pixels[p+1]));\n b_sum += (b_in_sum += (stackIn.b = pixels[p+2]));\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n\n stackOut = stackOut.next;\n\n yi += width;\n }\n }\n\n return imageData;\n}\n\nfunction BlurStack()\n{\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n}\n\nmodule.exports = {\n image: processImage,\n canvasRGBA: processCanvasRGBA,\n canvasRGB: processCanvasRGB,\n imageDataRGBA: processImageDataRGBA,\n imageDataRGB: processImageDataRGB\n};\n","/**\n * @file style\n * @author Cuttle Cong\n * @date 2018/3/11\n * @description\n */\nexport default `\n.medium-image-progressive-container {\n position: relative;\n width: 100%;\n margin: 0 auto;\n margin-top: 43px;\n display: block;\n}\n.image-loaded.medium-image-progressive canvas {\n visibility: hidden;\n opacity: 0;\n -webkit-transition: visibility 0s linear .5s,opacity .1s .4s;\n transition: visibility 0s linear .5s,opacity .1s .4s;\n}\n.image-loaded.medium-image-progressive .medium-image-origin {\n visibility: visible;\n opacity: 1;\n -webkit-transition: visibility 0s linear 0s,opacity .4s 0s;\n transition: visibility 0s linear 0s,opacity .4s 0s;\n}\n.medium-image-progressive-container .medium-image-progressive:not(.image-loaded):not(.canvas-loaded) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.medium-image-progressive-container .medium-image-progressive {\n position: absolute;\n top:0;left:0;width:100%;height:100%;\n max-width: 100%;\n}\n.medium-image-progressive-container .medium-image-origin,\n.medium-image-progressive-container .medium-image-progressive canvas {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.medium-image-progressive-container img, .medium-image-progressive-container canvas {\n margin: 0 auto;\n}\n.medium-image-progressive-container .canvas-loaded.medium-image-progressive:not(.image-loaded) canvas {\n visibility: visible;\n opacity: 1;\n -webkit-transition: visibility 0s linear 0s,opacity .4s 0s;\n transition: visibility 0s linear 0s,opacity .4s 0s;\n}\n.medium-image-progressive-container .medium-image-origin,\n.medium-image-progressive-container .medium-image-progressive canvas {\n visibility: hidden;\n opacity: 0;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n}\n`\n","/*\n * @Author: mayingying\n * @Date: 2018-03-16 21:25:58\n * @Last Modified by: mayingying\n * @Last Modified time: 2018-03-17 15:33:01\n */\nimport React from 'react'\nimport StackBlur from './stackblur'\nimport css from './style'\n\nexport default class MediumProgressive extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n canvasLoad: false,\n imageLoad: false\n }\n\n this.calculate()\n }\n\n calculate(props = this.props) {\n this.scale = 1\n this.height = props.height && parseFloat(props.height)\n this.width = props.width && parseFloat(props.width)\n if (this.width && this.height) {\n this.scale = this.height / this.width\n }\n this.width = !this.width ? '100%' : this.width + 'px'\n this.height = !this.height ? '0' : this.width + 'px'\n }\n\n componentWillReceiveProps(nextProps) {\n this.calculate(nextProps)\n // const newState = {}\n // if (this.props.progressUrl !== nextProps.progressUrl) {\n // newState.canvasLoad = false\n // }\n // if (this.props.originUrl !== nextProps.originUrl) {\n // newState.imageLoad = false\n // }\n // this.setState(newState)\n }\n\n pImgLoad(e) {\n StackBlur.image(this.pImg, this.canvas)\n this.setState({\n canvasLoad: true\n })\n }\n\n oImgLoad(e) {\n this.setState({\n imageLoad: true\n })\n }\n\n render() {\n let str = 'medium-image-progressive'\n if (this.state.canvasLoad) {\n str += ' canvas-loaded'\n }\n if (this.state.imageLoad) {\n str += ' image-loaded'\n }\n\n return (\n <div>\n <style>\n {css}\n </style>\n <div className=\"medium-image-progressive-container\" style={{ maxWidth: this.width, maxHeight: this.height }}>\n <div className=\"medium-image-progressive-placeholder\" style={{ paddingBottom: this.scale * 100 + '%' }}/>\n <div className={str}>\n <canvas ref={cvs => this.canvas = cvs}/>\n <img className=\"medium-image-progress\"\n src={this.props.progressUrl}\n style={{ display: 'none' }}\n ref={(img) => {\n this.pImg = img\n }}\n onLoad={this.pImgLoad.bind(this)}\n />\n <img className=\"medium-image-origin\"\n src={this.props.originUrl}\n onLoad={this.oImgLoad.bind(this)}\n ref={(img) => {\n this.oImg = img\n }}/>\n <noscript>\n <img className=\"medium-image-origin\" src={this.props.originUrl} />\n </noscript>\n </div>\n </div>\n </div>\n )\n }\n}\n\nMediumProgressive.defaultProps = {\n height: 0,\n width: 0,\n progressUrl: '',\n originUrl: ''\n}\n"],"names":["mul_table","shg_table","processImage","img","canvas","radius","blurAlphaChannel","document","getElementById","HTMLImageElement","w","naturalWidth","h","naturalHeight","HTMLCanvasElement","width","height","context","getContext","clearRect","drawImage","isNaN","processCanvasRGBA","processCanvasRGB","getImageDataFromCanvas","top_x","top_y","imageData","getImageData","e","Error","processImageDataRGBA","putImageData","pixels","data","x","y","i","p","yp","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pr","pg","pb","pa","rbs","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","next","stackEnd","stackIn","stackOut","mul_sum","shg_sum","r","g","b","a","processImageDataRGB","module","MediumProgressive","props","state","calculate","scale","parseFloat","nextProps","image","pImg","setState","str","canvasLoad","imageLoad","maxWidth","maxHeight","paddingBottom","cvs","progressUrl","display","pImgLoad","bind","originUrl","oImgLoad","oImg","React","Component","defaultProps"],"mappings":"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"}