changed Levels filter to Posterize

This commit is contained in:
Eric Rowell 2014-01-03 23:23:53 -08:00
parent cfe3091833
commit 7f0dc2085b
4 changed files with 41 additions and 41 deletions

View File

@ -19,7 +19,7 @@ module.exports = function(grunt) {
'src/filters/HSV.js', 'src/filters/HSV.js',
'src/filters/ConvolvePack.js', 'src/filters/ConvolvePack.js',
'src/filters/Enhance.js', 'src/filters/Enhance.js',
'src/filters/Levels.js', 'src/filters/Posterize.js',
'src/filters/Noise.js', 'src/filters/Noise.js',
'src/filters/Pixelate.js', 'src/filters/Pixelate.js',
'src/filters/Polar.js', 'src/filters/Polar.js',

View File

@ -1,36 +1,36 @@
(function () { (function () {
/** /**
* Levels Filter. Adjusts the channels so that there are no more * Posterize Filter. Adjusts the channels so that there are no more
* than n different values for that channel. This is also applied * than n different values for that channel. This is also applied
* to the alpha channel. * to the alpha channel.
* @function * @function
* @author ippo615 * @author ippo615
* @memberof Kinetic.Filters * @memberof Kinetic.Filters
* @param {Object} imageData * @param {Object} imageData
*/ */
Kinetic.Filters.Levels = function (imageData) { Kinetic.Filters.Posterize = function (imageData) {
// level must be between 1 and 255 // level must be between 1 and 255
var level = Math.round(this.level() * 254) + 1, var levels = Math.round(this.levels() * 254) + 1,
data = imageData.data, data = imageData.data,
len = data.length, len = data.length,
scale = (255 / level), scale = (255 / levels),
i; i;
for (i = 0; i < len; i += 1) { for (i = 0; i < len; i += 1) {
data[i] = Math.floor(data[i] / scale) * scale; data[i] = Math.floor(data[i] / scale) * scale;
} }
}; };
Kinetic.Factory.addFilterGetterSetter(Kinetic.Node, 'level', 0.5); Kinetic.Factory.addFilterGetterSetter(Kinetic.Node, 'levels', 0.5);
/** /**
* get/set levels. Must be a number between 0 and 1 * get/set levels. Must be a number between 0 and 1
* @name level * @name levels
* @method * @method
* @memberof Kinetic.Node.prototype * @memberof Kinetic.Node.prototype
* @param {Number} level between 0 and 1 * @param {Number} level between 0 and 1
* @returns {Number} * @returns {Number}
*/ */
})(); })();

View File

@ -94,7 +94,7 @@
<script src="unit/filters/Pixelate-test.js"></script> <script src="unit/filters/Pixelate-test.js"></script>
<script src="unit/filters/Noise-test.js"></script> <script src="unit/filters/Noise-test.js"></script>
<script src="unit/filters/Threshold-test.js"></script> <script src="unit/filters/Threshold-test.js"></script>
<script src="unit/filters/Levels-test.js"></script> <script src="unit/filters/Posterize-test.js"></script>
<script src="unit/filters/Sepia-test.js"></script> <script src="unit/filters/Sepia-test.js"></script>

View File

@ -1,4 +1,4 @@
suite('Levels', function () { suite('Posterize', function () {
// ====================================================== // ======================================================
test('on image tween', function(done) { test('on image tween', function(done) {
@ -19,14 +19,14 @@ suite('Levels', function () {
stage.add(layer); stage.add(layer);
darth.cache(); darth.cache();
darth.filters([Kinetic.Filters.Levels]); darth.filters([Kinetic.Filters.Posterize]);
darth.level(0.2); darth.levels(0.2);
layer.draw(); layer.draw();
var tween = new Kinetic.Tween({ var tween = new Kinetic.Tween({
node: darth, node: darth,
duration: 1.0, duration: 1.0,
level: 0, levels: 0,
easing: Kinetic.Easings.Linear easing: Kinetic.Easings.Linear
}); });