MCPcopy
hub / github.com/ericdrowell/KineticJS / filterGaussBlurRGBA

Function filterGaussBlurRGBA

kinetic.js:4440–4675  ·  view source on GitHub ↗
( imageData, radius)

Source from the content-addressed store, hash-verified

4438 ];
4439
4440 function filterGaussBlurRGBA( imageData, radius) {
4441
4442 var pixels = imageData.data,
4443 width = imageData.width,
4444 height = imageData.height;
4445
4446 var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum,
4447 r_out_sum, g_out_sum, b_out_sum, a_out_sum,
4448 r_in_sum, g_in_sum, b_in_sum, a_in_sum,
4449 pr, pg, pb, pa, rbs;
4450
4451 var div = radius + radius + 1,
4452 widthMinus1 = width - 1,
4453 heightMinus1 = height - 1,
4454 radiusPlus1 = radius + 1,
4455 sumFactor = radiusPlus1 * ( radiusPlus1 + 1 ) / 2,
4456 stackStart = new BlurStack(),
4457 stackEnd = null,
4458 stack = stackStart,
4459 stackIn = null,
4460 stackOut = null,
4461 mul_sum = mul_table[radius],
4462 shg_sum = shg_table[radius];
4463
4464 for ( i = 1; i < div; i++ ) {
4465 stack = stack.next = new BlurStack();
4466 if ( i == radiusPlus1 ){
4467 stackEnd = stack;
4468 }
4469 }
4470
4471 stack.next = stackStart;
4472
4473 yw = yi = 0;
4474
4475 for ( y = 0; y < height; y++ )
4476 {
4477 r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;
4478
4479 r_out_sum = radiusPlus1 * ( pr = pixels[yi] );
4480 g_out_sum = radiusPlus1 * ( pg = pixels[yi+1] );
4481 b_out_sum = radiusPlus1 * ( pb = pixels[yi+2] );
4482 a_out_sum = radiusPlus1 * ( pa = pixels[yi+3] );
4483
4484 r_sum += sumFactor * pr;
4485 g_sum += sumFactor * pg;
4486 b_sum += sumFactor * pb;
4487 a_sum += sumFactor * pa;
4488
4489 stack = stackStart;
4490
4491 for( i = 0; i < radiusPlus1; i++ )
4492 {
4493 stack.r = pr;
4494 stack.g = pg;
4495 stack.b = pb;
4496 stack.a = pa;
4497 stack = stack.next;

Callers 1

kinetic.jsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected