mirror of
https://github.com/konvajs/konva.git
synced 2025-06-28 13:27:33 +08:00
RGBA filter added to gulp
This commit is contained in:
parent
e5244fd4c5
commit
6831c51d5f
@ -34,6 +34,7 @@ var sourceFiles = [
|
||||
'src/filters/Blur.js',
|
||||
'src/filters/Mask.js',
|
||||
'src/filters/RGB.js',
|
||||
'src/filters/RGBA.js',
|
||||
'src/filters/HSV.js',
|
||||
'src/filters/HSL.js',
|
||||
'src/filters/Emboss.js',
|
||||
|
111
konva.js
111
konva.js
@ -3,7 +3,7 @@
|
||||
* Konva JavaScript Framework v0.9.9
|
||||
* http://konvajs.github.io/
|
||||
* Licensed under the MIT or GPL Version 2 licenses.
|
||||
* Date: Tue Jun 02 2015
|
||||
* Date: Tue Jun 09 2015
|
||||
*
|
||||
* Original work Copyright (C) 2011 - 2013 by Eric Rowell (KineticJS)
|
||||
* Modified work Copyright (C) 2014 - 2015 by Anton Lavrenov (Konva)
|
||||
@ -5117,6 +5117,115 @@ var Konva = {};
|
||||
*/
|
||||
})();
|
||||
|
||||
(function () {
|
||||
/**
|
||||
* RGBA Filter
|
||||
* @function
|
||||
* @name RGBA
|
||||
* @memberof Konva.Filters
|
||||
* @param {Object} imageData
|
||||
* @author codefo
|
||||
* @example
|
||||
* node.cache();
|
||||
* node.filters([Konva.Filters.RGBA]);
|
||||
* node.blue(120);
|
||||
* node.green(200);
|
||||
* node.alpha(0.3);
|
||||
*/
|
||||
Konva.Filters.RGBA = function (imageData) {
|
||||
var data = imageData.data,
|
||||
nPixels = data.length,
|
||||
red = this.red(),
|
||||
green = this.green(),
|
||||
blue = this.blue(),
|
||||
alpha = this.alpha(),
|
||||
i, brightness, ab, iab;
|
||||
|
||||
for (i = 0; i < nPixels; i += 4) {
|
||||
brightness = (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2])/255;
|
||||
ab = alpha * brightness;
|
||||
iab = (1 - alpha) * brightness;
|
||||
|
||||
data[i] = red * ab + data[i] * iab; // r
|
||||
data[i + 1] = green * ab + data[i + 1] * iab; // g
|
||||
data[i + 2] = blue * ab + data[i + 2] * iab; // b
|
||||
}
|
||||
};
|
||||
|
||||
Konva.Factory.addGetterSetter(Konva.Node, 'red', 0, function(val) {
|
||||
this._filterUpToDate = false;
|
||||
if (val > 255) {
|
||||
return 255;
|
||||
}
|
||||
else if (val < 0) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return Math.round(val);
|
||||
}
|
||||
});
|
||||
/**
|
||||
* get/set filter red value. Use with {@link Konva.Filters.RGBA} filter.
|
||||
* @name red
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {Integer} red value between 0 and 255
|
||||
* @returns {Integer}
|
||||
*/
|
||||
|
||||
Konva.Factory.addGetterSetter(Konva.Node, 'green', 0, function(val) {
|
||||
this._filterUpToDate = false;
|
||||
if (val > 255) {
|
||||
return 255;
|
||||
}
|
||||
else if (val < 0) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return Math.round(val);
|
||||
}
|
||||
});
|
||||
/**
|
||||
* get/set filter green value. Use with {@link Konva.Filters.RGBA} filter.
|
||||
* @name green
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {Integer} green value between 0 and 255
|
||||
* @returns {Integer}
|
||||
*/
|
||||
|
||||
Konva.Factory.addGetterSetter(Konva.Node, 'blue', 0, Konva.Validators.RGBComponent, Konva.Factory.afterSetFilter);
|
||||
/**
|
||||
* get/set filter blue value. Use with {@link Konva.Filters.RGBA} filter.
|
||||
* @name blue
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {Integer} blue value between 0 and 255
|
||||
* @returns {Integer}
|
||||
*/
|
||||
|
||||
Konva.Factory.addGetterSetter(Konva.Node, 'alpha', 0, function(val) {
|
||||
this._filterUpToDate = false;
|
||||
if (val > 1) {
|
||||
return 1;
|
||||
}
|
||||
else if (val < 0) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return val;
|
||||
}
|
||||
});
|
||||
/**
|
||||
* get/set filter alpha value. Use with {@link Konva.Filters.RGBA} filter.
|
||||
* @name alpha
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {Float} alpha value between 0 and 1
|
||||
* @returns {Float}
|
||||
*/
|
||||
})();
|
||||
|
||||
(function () {
|
||||
|
||||
/**
|
||||
|
8
konva.min.js
vendored
8
konva.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user