mirror of
https://github.com/konvajs/konva.git
synced 2026-01-23 13:26:07 +08:00
migrate to eslint
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
the Gauss filter
|
||||
master repo: https://github.com/pavelpower/konvajsGaussFilter/
|
||||
master repo: https://github.com/pavelpower/kineticjsGaussFilter
|
||||
*/
|
||||
(function() {
|
||||
/*
|
||||
@@ -53,22 +53,22 @@
|
||||
}
|
||||
|
||||
var mul_table = [
|
||||
512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,
|
||||
454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,
|
||||
482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,
|
||||
437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,
|
||||
497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,
|
||||
320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,
|
||||
446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,
|
||||
329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,
|
||||
505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,
|
||||
399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,
|
||||
324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,
|
||||
268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,
|
||||
451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,
|
||||
385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,
|
||||
332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,
|
||||
289,287,285,282,280,278,275,273,271,269,267,265,263,261,259
|
||||
512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512,
|
||||
454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512,
|
||||
482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456,
|
||||
437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512,
|
||||
497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328,
|
||||
320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456,
|
||||
446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335,
|
||||
329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512,
|
||||
505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405,
|
||||
399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328,
|
||||
324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271,
|
||||
268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456,
|
||||
451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388,
|
||||
385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335,
|
||||
332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292,
|
||||
289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259
|
||||
];
|
||||
|
||||
var shg_table = [
|
||||
@@ -102,9 +102,9 @@
|
||||
pr, pg, pb, pa, rbs;
|
||||
|
||||
var div = radius + radius + 1,
|
||||
widthMinus1 = width - 1,
|
||||
widthMinus1 = width - 1,
|
||||
heightMinus1 = height - 1,
|
||||
radiusPlus1 = radius + 1,
|
||||
radiusPlus1 = radius + 1,
|
||||
sumFactor = radiusPlus1 * ( radiusPlus1 + 1 ) / 2,
|
||||
stackStart = new BlurStack(),
|
||||
stackEnd = null,
|
||||
@@ -116,7 +116,7 @@
|
||||
|
||||
for ( i = 1; i < div; i++ ) {
|
||||
stack = stack.next = new BlurStack();
|
||||
if ( i == radiusPlus1 ){
|
||||
if ( i === radiusPlus1 ){
|
||||
stackEnd = stack;
|
||||
}
|
||||
}
|
||||
@@ -130,9 +130,9 @@
|
||||
r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;
|
||||
|
||||
r_out_sum = radiusPlus1 * ( pr = pixels[yi] );
|
||||
g_out_sum = radiusPlus1 * ( pg = pixels[yi+1] );
|
||||
b_out_sum = radiusPlus1 * ( pb = pixels[yi+2] );
|
||||
a_out_sum = radiusPlus1 * ( pa = pixels[yi+3] );
|
||||
g_out_sum = radiusPlus1 * ( pg = pixels[yi + 1] );
|
||||
b_out_sum = radiusPlus1 * ( pb = pixels[yi + 2] );
|
||||
a_out_sum = radiusPlus1 * ( pa = pixels[yi + 3] );
|
||||
|
||||
r_sum += sumFactor * pr;
|
||||
g_sum += sumFactor * pg;
|
||||
@@ -154,9 +154,9 @@
|
||||
{
|
||||
p = yi + (( widthMinus1 < i ? widthMinus1 : i ) << 2 );
|
||||
r_sum += ( stack.r = ( pr = pixels[p])) * ( rbs = radiusPlus1 - i );
|
||||
g_sum += ( stack.g = ( pg = pixels[p+1])) * rbs;
|
||||
b_sum += ( stack.b = ( pb = pixels[p+2])) * rbs;
|
||||
a_sum += ( stack.a = ( pa = pixels[p+3])) * rbs;
|
||||
g_sum += ( stack.g = ( pg = pixels[p + 1])) * rbs;
|
||||
b_sum += ( stack.b = ( pb = pixels[p + 2])) * rbs;
|
||||
a_sum += ( stack.a = ( pa = pixels[p + 3])) * rbs;
|
||||
|
||||
r_in_sum += pr;
|
||||
g_in_sum += pg;
|
||||
@@ -171,15 +171,15 @@
|
||||
stackOut = stackEnd;
|
||||
for ( x = 0; x < width; x++ )
|
||||
{
|
||||
pixels[yi+3] = pa = (a_sum * mul_sum) >> shg_sum;
|
||||
pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;
|
||||
if ( pa !== 0 )
|
||||
{
|
||||
pa = 255 / pa;
|
||||
pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;
|
||||
pixels[yi+1] = ((g_sum * mul_sum) >> shg_sum) * pa;
|
||||
pixels[yi+2] = ((b_sum * mul_sum) >> shg_sum) * pa;
|
||||
pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;
|
||||
pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;
|
||||
pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;
|
||||
} else {
|
||||
pixels[yi] = pixels[yi+1] = pixels[yi+2] = 0;
|
||||
pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;
|
||||
}
|
||||
|
||||
r_sum -= r_out_sum;
|
||||
@@ -192,12 +192,12 @@
|
||||
b_out_sum -= stackIn.b;
|
||||
a_out_sum -= stackIn.a;
|
||||
|
||||
p = ( yw + ( ( p = x + radius + 1 ) < widthMinus1 ? p : widthMinus1 ) ) << 2;
|
||||
p = (yw + ( ( p = x + radius + 1 ) < widthMinus1 ? p : widthMinus1 ) ) << 2;
|
||||
|
||||
r_in_sum += ( stackIn.r = pixels[p]);
|
||||
g_in_sum += ( stackIn.g = pixels[p+1]);
|
||||
b_in_sum += ( stackIn.b = pixels[p+2]);
|
||||
a_in_sum += ( stackIn.a = pixels[p+3]);
|
||||
g_in_sum += ( stackIn.g = pixels[p + 1]);
|
||||
b_in_sum += ( stackIn.b = pixels[p + 2]);
|
||||
a_in_sum += ( stackIn.a = pixels[p + 3]);
|
||||
|
||||
r_sum += r_in_sum;
|
||||
g_sum += g_in_sum;
|
||||
@@ -230,9 +230,9 @@
|
||||
|
||||
yi = x << 2;
|
||||
r_out_sum = radiusPlus1 * ( pr = pixels[yi]);
|
||||
g_out_sum = radiusPlus1 * ( pg = pixels[yi+1]);
|
||||
b_out_sum = radiusPlus1 * ( pb = pixels[yi+2]);
|
||||
a_out_sum = radiusPlus1 * ( pa = pixels[yi+3]);
|
||||
g_out_sum = radiusPlus1 * ( pg = pixels[yi + 1]);
|
||||
b_out_sum = radiusPlus1 * ( pb = pixels[yi + 2]);
|
||||
a_out_sum = radiusPlus1 * ( pa = pixels[yi + 3]);
|
||||
|
||||
r_sum += sumFactor * pr;
|
||||
g_sum += sumFactor * pg;
|
||||
@@ -257,9 +257,9 @@
|
||||
yi = ( yp + x ) << 2;
|
||||
|
||||
r_sum += ( stack.r = ( pr = pixels[yi])) * ( rbs = radiusPlus1 - i );
|
||||
g_sum += ( stack.g = ( pg = pixels[yi+1])) * rbs;
|
||||
b_sum += ( stack.b = ( pb = pixels[yi+2])) * rbs;
|
||||
a_sum += ( stack.a = ( pa = pixels[yi+3])) * rbs;
|
||||
g_sum += ( stack.g = ( pg = pixels[yi + 1])) * rbs;
|
||||
b_sum += ( stack.b = ( pb = pixels[yi + 2])) * rbs;
|
||||
a_sum += ( stack.a = ( pa = pixels[yi + 3])) * rbs;
|
||||
|
||||
r_in_sum += pr;
|
||||
g_in_sum += pg;
|
||||
@@ -280,15 +280,15 @@
|
||||
for ( y = 0; y < height; y++ )
|
||||
{
|
||||
p = yi << 2;
|
||||
pixels[p+3] = pa = (a_sum * mul_sum) >> shg_sum;
|
||||
pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;
|
||||
if ( pa > 0 )
|
||||
{
|
||||
pa = 255 / pa;
|
||||
pixels[p] = ((r_sum * mul_sum) >> shg_sum ) * pa;
|
||||
pixels[p+1] = ((g_sum * mul_sum) >> shg_sum ) * pa;
|
||||
pixels[p+2] = ((b_sum * mul_sum) >> shg_sum ) * pa;
|
||||
pixels[p] = ((r_sum * mul_sum) >> shg_sum ) * pa;
|
||||
pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum ) * pa;
|
||||
pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum ) * pa;
|
||||
} else {
|
||||
pixels[p] = pixels[p+1] = pixels[p+2] = 0;
|
||||
pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;
|
||||
}
|
||||
|
||||
r_sum -= r_out_sum;
|
||||
@@ -304,9 +304,9 @@
|
||||
p = ( x + (( ( p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1 ) * width )) << 2;
|
||||
|
||||
r_sum += ( r_in_sum += ( stackIn.r = pixels[p]));
|
||||
g_sum += ( g_in_sum += ( stackIn.g = pixels[p+1]));
|
||||
b_sum += ( b_in_sum += ( stackIn.b = pixels[p+2]));
|
||||
a_sum += ( a_in_sum += ( stackIn.a = pixels[p+3]));
|
||||
g_sum += ( g_in_sum += ( stackIn.g = pixels[p + 1]));
|
||||
b_sum += ( b_in_sum += ( stackIn.b = pixels[p + 2]));
|
||||
a_sum += ( a_in_sum += ( stackIn.a = pixels[p + 3]));
|
||||
|
||||
stackIn = stackIn.next;
|
||||
|
||||
@@ -356,4 +356,4 @@
|
||||
* @param {Integer} radius
|
||||
* @returns {Integer}
|
||||
*/
|
||||
})();
|
||||
})();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
(function() {
|
||||
/**
|
||||
* Brighten Filter.
|
||||
* Brighten Filter.
|
||||
* @function
|
||||
* @memberof Konva.Filters
|
||||
* @param {Object} imageData
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
Konva.Factory.addGetterSetter(Konva.Node, 'brightness', 0, null, Konva.Factory.afterSetFilter);
|
||||
/**
|
||||
* get/set filter brightness. The brightness is a number between -1 and 1. Positive values
|
||||
* get/set filter brightness. The brightness is a number between -1 and 1. Positive values
|
||||
* brighten the pixels and negative values darken them. Use with {@link Konva.Filters.Brighten} filter.
|
||||
* @name brightness
|
||||
* @method
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
data = imageData.data,
|
||||
w = imageData.width,
|
||||
h = imageData.height,
|
||||
w4 = w*4,
|
||||
w4 = w * 4,
|
||||
y = h;
|
||||
|
||||
switch (direction) {
|
||||
@@ -69,7 +69,7 @@
|
||||
}
|
||||
|
||||
do {
|
||||
var offsetY = (y-1)*w4;
|
||||
var offsetY = (y - 1) * w4;
|
||||
|
||||
var otherY = dirY;
|
||||
if (y + otherY < 1){
|
||||
@@ -79,11 +79,11 @@
|
||||
otherY = 0;
|
||||
}
|
||||
|
||||
var offsetYOther = (y-1+otherY)*w*4;
|
||||
var offsetYOther = (y - 1 + otherY) * w * 4;
|
||||
|
||||
var x = w;
|
||||
do {
|
||||
var offset = offsetY + (x-1)*4;
|
||||
var offset = offsetY + (x - 1) * 4;
|
||||
|
||||
var otherX = dirX;
|
||||
if (x + otherX < 1){
|
||||
@@ -93,11 +93,11 @@
|
||||
otherX = 0;
|
||||
}
|
||||
|
||||
var offsetOther = offsetYOther + (x-1+otherX)*4;
|
||||
var offsetOther = offsetYOther + (x - 1 + otherX) * 4;
|
||||
|
||||
var dR = data[offset] - data[offsetOther];
|
||||
var dG = data[offset+1] - data[offsetOther+1];
|
||||
var dB = data[offset+2] - data[offsetOther+2];
|
||||
var dG = data[offset + 1] - data[offsetOther + 1];
|
||||
var dB = data[offset + 2] - data[offsetOther + 2];
|
||||
|
||||
var dif = dR;
|
||||
var absDif = dif > 0 ? dif : -dif;
|
||||
@@ -116,12 +116,12 @@
|
||||
|
||||
if (blend) {
|
||||
var r = data[offset] + dif;
|
||||
var g = data[offset+1] + dif;
|
||||
var b = data[offset+2] + dif;
|
||||
var g = data[offset + 1] + dif;
|
||||
var b = data[offset + 2] + dif;
|
||||
|
||||
data[offset] = (r > 255) ? 255 : (r < 0 ? 0 : r);
|
||||
data[offset+1] = (g > 255) ? 255 : (g < 0 ? 0 : g);
|
||||
data[offset+2] = (b > 255) ? 255 : (b < 0 ? 0 : b);
|
||||
data[offset + 1] = (g > 255) ? 255 : (g < 0 ? 0 : g);
|
||||
data[offset + 2] = (b > 255) ? 255 : (b < 0 ? 0 : b);
|
||||
} else {
|
||||
var grey = greyLevel - dif;
|
||||
if (grey < 0) {
|
||||
@@ -130,7 +130,7 @@
|
||||
grey = 255;
|
||||
}
|
||||
|
||||
data[offset] = data[offset+1] = data[offset+2] = grey;
|
||||
data[offset] = data[offset + 1] = data[offset + 2] = grey;
|
||||
}
|
||||
|
||||
} while (--x);
|
||||
@@ -178,5 +178,3 @@
|
||||
* @returns {Boolean}
|
||||
*/
|
||||
})();
|
||||
|
||||
|
||||
|
||||
@@ -68,29 +68,29 @@
|
||||
if( gMax === gMin ){ gMax = 255; gMin = 0; }
|
||||
if( bMax === bMin ){ bMax = 255; bMin = 0; }
|
||||
|
||||
var rMid, rGoalMax,rGoalMin,
|
||||
gMid, gGoalMax,gGoalMin,
|
||||
bMid, bGoalMax,bGoalMin;
|
||||
var rMid, rGoalMax, rGoalMin,
|
||||
gMid, gGoalMax, gGoalMin,
|
||||
bMid, bGoalMax, bGoalMin;
|
||||
|
||||
// If the enhancement is positive - stretch the histogram
|
||||
// If the enhancement is positive - stretch the histogram
|
||||
if ( enhanceAmount > 0 ){
|
||||
rGoalMax = rMax + enhanceAmount*(255-rMax);
|
||||
rGoalMin = rMin - enhanceAmount*(rMin-0);
|
||||
gGoalMax = gMax + enhanceAmount*(255-gMax);
|
||||
gGoalMin = gMin - enhanceAmount*(gMin-0);
|
||||
bGoalMax = bMax + enhanceAmount*(255-bMax);
|
||||
bGoalMin = bMin - enhanceAmount*(bMin-0);
|
||||
// If the enhancement is negative - compress the histogram
|
||||
rGoalMax = rMax + enhanceAmount * (255 - rMax);
|
||||
rGoalMin = rMin - enhanceAmount * (rMin - 0);
|
||||
gGoalMax = gMax + enhanceAmount * (255 - gMax);
|
||||
gGoalMin = gMin - enhanceAmount * (gMin - 0);
|
||||
bGoalMax = bMax + enhanceAmount * (255 - bMax);
|
||||
bGoalMin = bMin - enhanceAmount * (bMin - 0);
|
||||
// If the enhancement is negative - compress the histogram
|
||||
} else {
|
||||
rMid = (rMax + rMin)*0.5;
|
||||
rGoalMax = rMax + enhanceAmount*(rMax-rMid);
|
||||
rGoalMin = rMin + enhanceAmount*(rMin-rMid);
|
||||
gMid = (gMax + gMin)*0.5;
|
||||
gGoalMax = gMax + enhanceAmount*(gMax-gMid);
|
||||
gGoalMin = gMin + enhanceAmount*(gMin-gMid);
|
||||
bMid = (bMax + bMin)*0.5;
|
||||
bGoalMax = bMax + enhanceAmount*(bMax-bMid);
|
||||
bGoalMin = bMin + enhanceAmount*(bMin-bMid);
|
||||
rMid = (rMax + rMin) * 0.5;
|
||||
rGoalMax = rMax + enhanceAmount * (rMax - rMid);
|
||||
rGoalMin = rMin + enhanceAmount * (rMin - rMid);
|
||||
gMid = (gMax + gMin) * 0.5;
|
||||
gGoalMax = gMax + enhanceAmount * (gMax - gMid);
|
||||
gGoalMin = gMin + enhanceAmount * (gMin - gMid);
|
||||
bMid = (bMax + bMin) * 0.5;
|
||||
bGoalMax = bMax + enhanceAmount * (bMax - bMid);
|
||||
bGoalMin = bMin + enhanceAmount * (bMin - bMid);
|
||||
}
|
||||
|
||||
// Pass 2 - remap everything, except the alpha
|
||||
|
||||
@@ -45,9 +45,9 @@
|
||||
var data = imageData.data,
|
||||
nPixels = data.length,
|
||||
v = 1,
|
||||
s = Math.pow(2,this.saturation()),
|
||||
s = Math.pow(2, this.saturation()),
|
||||
h = Math.abs((this.hue()) + 360) % 360,
|
||||
l = this.luminance()*127,
|
||||
l = this.luminance() * 127,
|
||||
i;
|
||||
|
||||
// Basis for the technique used:
|
||||
@@ -62,31 +62,31 @@
|
||||
//[ .299V-.300vsu+1.25vsw .587V-.588vsu-1.05vsw .114V+.886vsu-.203vsw ] [B]
|
||||
|
||||
// Precompute the values in the matrix:
|
||||
var vsu = v*s*Math.cos(h*Math.PI/180),
|
||||
vsw = v*s*Math.sin(h*Math.PI/180);
|
||||
var vsu = v * s * Math.cos(h * Math.PI / 180),
|
||||
vsw = v * s * Math.sin(h * Math.PI / 180);
|
||||
// (result spot)(source spot)
|
||||
var rr = 0.299*v+0.701*vsu+0.167*vsw,
|
||||
rg = 0.587*v-0.587*vsu+0.330*vsw,
|
||||
rb = 0.114*v-0.114*vsu-0.497*vsw;
|
||||
var gr = 0.299*v-0.299*vsu-0.328*vsw,
|
||||
gg = 0.587*v+0.413*vsu+0.035*vsw,
|
||||
gb = 0.114*v-0.114*vsu+0.293*vsw;
|
||||
var br = 0.299*v-0.300*vsu+1.250*vsw,
|
||||
bg = 0.587*v-0.586*vsu-1.050*vsw,
|
||||
bb = 0.114*v+0.886*vsu-0.200*vsw;
|
||||
var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw,
|
||||
rg = 0.587 * v - 0.587 * vsu + 0.330 * vsw,
|
||||
rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;
|
||||
var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw,
|
||||
gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw,
|
||||
gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;
|
||||
var br = 0.299 * v - 0.300 * vsu + 1.250 * vsw,
|
||||
bg = 0.587 * v - 0.586 * vsu - 1.050 * vsw,
|
||||
bb = 0.114 * v + 0.886 * vsu - 0.200 * vsw;
|
||||
|
||||
var r,g,b,a;
|
||||
var r, g, b, a;
|
||||
|
||||
for (i = 0; i < nPixels; i += 4) {
|
||||
r = data[i+0];
|
||||
g = data[i+1];
|
||||
b = data[i+2];
|
||||
a = data[i+3];
|
||||
r = data[i + 0];
|
||||
g = data[i + 1];
|
||||
b = data[i + 2];
|
||||
a = data[i + 3];
|
||||
|
||||
data[i+0] = rr*r + rg*g + rb*b + l;
|
||||
data[i+1] = gr*r + gg*g + gb*b + l;
|
||||
data[i+2] = br*r + bg*g + bb*b + l;
|
||||
data[i+3] = a; // alpha
|
||||
data[i + 0] = rr * r + rg * g + rb * b + l;
|
||||
data[i + 1] = gr * r + gg * g + gb * b + l;
|
||||
data[i + 2] = br * r + bg * g + bb * b + l;
|
||||
data[i + 3] = a; // alpha
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
Konva.Filters.HSV = function (imageData) {
|
||||
var data = imageData.data,
|
||||
nPixels = data.length,
|
||||
v = Math.pow(2,this.value()),
|
||||
s = Math.pow(2,this.saturation()),
|
||||
v = Math.pow(2, this.value()),
|
||||
s = Math.pow(2, this.saturation()),
|
||||
h = Math.abs((this.hue()) + 360) % 360,
|
||||
i;
|
||||
|
||||
@@ -32,31 +32,31 @@
|
||||
//[ .299V-.300vsu+1.25vsw .587V-.588vsu-1.05vsw .114V+.886vsu-.203vsw ] [B]
|
||||
|
||||
// Precompute the values in the matrix:
|
||||
var vsu = v*s*Math.cos(h*Math.PI/180),
|
||||
vsw = v*s*Math.sin(h*Math.PI/180);
|
||||
var vsu = v * s * Math.cos(h * Math.PI / 180),
|
||||
vsw = v * s * Math.sin(h * Math.PI / 180);
|
||||
// (result spot)(source spot)
|
||||
var rr = 0.299*v+0.701*vsu+0.167*vsw,
|
||||
rg = 0.587*v-0.587*vsu+0.330*vsw,
|
||||
rb = 0.114*v-0.114*vsu-0.497*vsw;
|
||||
var gr = 0.299*v-0.299*vsu-0.328*vsw,
|
||||
gg = 0.587*v+0.413*vsu+0.035*vsw,
|
||||
gb = 0.114*v-0.114*vsu+0.293*vsw;
|
||||
var br = 0.299*v-0.300*vsu+1.250*vsw,
|
||||
bg = 0.587*v-0.586*vsu-1.050*vsw,
|
||||
bb = 0.114*v+0.886*vsu-0.200*vsw;
|
||||
var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw,
|
||||
rg = 0.587 * v - 0.587 * vsu + 0.330 * vsw,
|
||||
rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;
|
||||
var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw,
|
||||
gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw,
|
||||
gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;
|
||||
var br = 0.299 * v - 0.300 * vsu + 1.250 * vsw,
|
||||
bg = 0.587 * v - 0.586 * vsu - 1.050 * vsw,
|
||||
bb = 0.114 * v + 0.886 * vsu - 0.200 * vsw;
|
||||
|
||||
var r,g,b,a;
|
||||
var r, g, b, a;
|
||||
|
||||
for (i = 0; i < nPixels; i += 4) {
|
||||
r = data[i+0];
|
||||
g = data[i+1];
|
||||
b = data[i+2];
|
||||
a = data[i+3];
|
||||
r = data[i + 0];
|
||||
g = data[i + 1];
|
||||
b = data[i + 2];
|
||||
a = data[i + 3];
|
||||
|
||||
data[i+0] = rr*r + rg*g + rb*b;
|
||||
data[i+1] = gr*r + gg*g + gb*b;
|
||||
data[i+2] = br*r + bg*g + bb*b;
|
||||
data[i+3] = a; // alpha
|
||||
data[i + 0] = rr * r + rg * g + rb * b;
|
||||
data[i + 1] = gr * r + gg * g + gb * b;
|
||||
data[i + 2] = br * r + bg * g + bb * b;
|
||||
data[i + 3] = a; // alpha
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
@@ -22,4 +22,4 @@
|
||||
data[i + 2] = 255 - data[i + 2];
|
||||
}
|
||||
};
|
||||
})();
|
||||
})();
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/*jshint newcap:false */
|
||||
(function () {
|
||||
|
||||
/*
|
||||
* ToPolar Filter. Converts image data to polar coordinates. Performs
|
||||
* ToPolar Filter. Converts image data to polar coordinates. Performs
|
||||
* w*h*4 pixel reads and w*h pixel writes. The r axis is placed along
|
||||
* what would be the y axis and the theta axis along the x axis.
|
||||
* @function
|
||||
@@ -17,7 +16,7 @@
|
||||
* default is in the middle
|
||||
*/
|
||||
|
||||
var ToPolar = function(src,dst,opt){
|
||||
var ToPolar = function(src, dst, opt){
|
||||
|
||||
var srcPixels = src.data,
|
||||
dstPixels = dst.data,
|
||||
@@ -25,7 +24,7 @@
|
||||
ySize = src.height,
|
||||
xMid = opt.polarCenterX || xSize/2,
|
||||
yMid = opt.polarCenterY || ySize/2,
|
||||
i, x, y, r=0,g=0,b=0,a=0;
|
||||
i, x, y, r=0, g=0, b=0, a=0;
|
||||
|
||||
// Find the largest radius
|
||||
var rad, rMax = Math.sqrt( xMid*xMid + yMid*yMid );
|
||||
@@ -86,7 +85,7 @@
|
||||
* 0 is no rotation, 360 degrees is a full rotation
|
||||
*/
|
||||
|
||||
var FromPolar = function(src,dst,opt){
|
||||
var FromPolar = function(src, dst, opt){
|
||||
|
||||
var srcPixels = src.data,
|
||||
dstPixels = dst.data,
|
||||
@@ -94,7 +93,7 @@
|
||||
ySize = src.height,
|
||||
xMid = opt.polarCenterX || xSize/2,
|
||||
yMid = opt.polarCenterY || ySize/2,
|
||||
i, x, y, dx, dy, r=0,g=0,b=0,a=0;
|
||||
i, x, y, dx, dy, r=0, g=0, b=0, a=0;
|
||||
|
||||
|
||||
// Find the largest radius
|
||||
@@ -122,7 +121,7 @@
|
||||
dx = x - xMid;
|
||||
dy = y - yMid;
|
||||
radius = Math.sqrt(dx*dx + dy*dy)*rSize/rMax;
|
||||
theta = (Math.atan2(dy,dx)*180/Math.PI + 360 + phaseShift)%360;
|
||||
theta = (Math.atan2(dy, dx)*180/Math.PI + 360 + phaseShift)%360;
|
||||
theta = theta*tSize/360;
|
||||
x1 = Math.floor(theta);
|
||||
y1 = Math.floor(radius);
|
||||
@@ -150,7 +149,7 @@
|
||||
var tempCanvas = Konva.Util.createCanvasElement();
|
||||
|
||||
/*
|
||||
* Kaleidoscope Filter.
|
||||
* Kaleidoscope Filter.
|
||||
* @function
|
||||
* @name Kaleidoscope
|
||||
* @author ippo615
|
||||
@@ -165,27 +164,27 @@
|
||||
var xSize = imageData.width,
|
||||
ySize = imageData.height;
|
||||
|
||||
var x,y,xoff,i, r,g,b,a, srcPos, dstPos;
|
||||
var x, y, xoff, i, r, g, b, a, srcPos, dstPos;
|
||||
var power = Math.round( this.kaleidoscopePower() );
|
||||
var angle = Math.round( this.kaleidoscopeAngle() );
|
||||
var offset = Math.floor(xSize*(angle%360)/360);
|
||||
|
||||
if( power < 1 ){return;}
|
||||
if( power < 1 ){return; }
|
||||
|
||||
// Work with our shared buffer canvas
|
||||
tempCanvas.width = xSize;
|
||||
tempCanvas.height = ySize;
|
||||
var scratchData = tempCanvas.getContext('2d').getImageData(0,0,xSize,ySize);
|
||||
var scratchData = tempCanvas.getContext('2d').getImageData(0, 0, xSize, ySize);
|
||||
|
||||
// Convert thhe original to polar coordinates
|
||||
ToPolar( imageData, scratchData, {
|
||||
polarCenterX:xSize/2,
|
||||
polarCenterY:ySize/2
|
||||
polarCenterX: xSize/2,
|
||||
polarCenterY: ySize/2
|
||||
});
|
||||
|
||||
// Determine how big each section will be, if it's too small
|
||||
// Determine how big each section will be, if it's too small
|
||||
// make it bigger
|
||||
var minSectionSize = xSize / Math.pow(2,power);
|
||||
var minSectionSize = xSize / Math.pow(2, power);
|
||||
while( minSectionSize <= 8){
|
||||
minSectionSize = minSectionSize*2;
|
||||
power -= 1;
|
||||
@@ -241,7 +240,7 @@
|
||||
}
|
||||
|
||||
// Convert back from polar coordinates
|
||||
FromPolar(scratchData,imageData,{polarRotation:0});
|
||||
FromPolar(scratchData, imageData, {polarRotation: 0});
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
return maskResult;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Mask Filter
|
||||
* @function
|
||||
@@ -186,7 +186,7 @@
|
||||
|
||||
// Apply mask
|
||||
applyMask(imageData, mask);
|
||||
|
||||
|
||||
// todo : Update hit region function according to mask
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
for (xBin = 0; xBin < nBinsX; xBin += 1) {
|
||||
for (yBin = 0; yBin < nBinsY; yBin += 1) {
|
||||
|
||||
|
||||
// Initialize the color accumlators to 0
|
||||
red = 0;
|
||||
green = 0;
|
||||
@@ -77,7 +77,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
Konva.Factory.addGetterSetter(Konva.Node, 'pixelSize', 8, null, Konva.Factory.afterSetFilter);
|
||||
@@ -90,4 +90,4 @@
|
||||
* @param {Integer} pixelSize
|
||||
* @returns {Integer}
|
||||
*/
|
||||
})();
|
||||
})();
|
||||
|
||||
@@ -38,4 +38,4 @@
|
||||
* @param {Number} level between 0 and 1
|
||||
* @returns {Number}
|
||||
*/
|
||||
})();
|
||||
})();
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
for (i = 0; i < nPixels; i += 4) {
|
||||
brightness = (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2])/255;
|
||||
data[i ] = brightness*red; // r
|
||||
data[i] = brightness*red; // r
|
||||
data[i + 1] = brightness*green; // g
|
||||
data[i + 2] = brightness*blue; // b
|
||||
data[i + 3] = data[i + 3]; // alpha
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
y = imageData.height,
|
||||
w4 = w*4,
|
||||
offsetY, x, offset, or, og, ob, r, g, b;
|
||||
|
||||
|
||||
do {
|
||||
offsetY = (y-1)*w4;
|
||||
x = w;
|
||||
do {
|
||||
offset = offsetY + (x-1)*4;
|
||||
|
||||
|
||||
or = data[offset];
|
||||
og = data[offset+1];
|
||||
ob = data[offset+2];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
(function () {
|
||||
|
||||
/**
|
||||
* Threshold Filter. Pushes any value above the mid point to
|
||||
* Threshold Filter. Pushes any value above the mid point to
|
||||
* the max and any value below the mid point to the min.
|
||||
* This affects the alpha channel.
|
||||
* @function
|
||||
@@ -36,4 +36,4 @@
|
||||
* @param {Number} threshold
|
||||
* @returns {Number}
|
||||
*/
|
||||
})();
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user