Merge pull request #8 from cblgh/master

invert filter renamed to offset. offset filter now takes a parameter
This commit is contained in:
Лu Лinveгa 2016-11-21 09:55:41 -08:00 committed by GitHub
commit 873fc433cc
4 changed files with 23 additions and 14 deletions

View File

@ -23,7 +23,7 @@
<script type="text/javascript" src="scripts/modules/filter.js"></script> <script type="text/javascript" src="scripts/modules/filter.js"></script>
<script type="text/javascript" src="scripts/modules/filter.saturation.js"></script> <script type="text/javascript" src="scripts/modules/filter.saturation.js"></script>
<script type="text/javascript" src="scripts/modules/filter.chromatic.js"></script> <script type="text/javascript" src="scripts/modules/filter.chromatic.js"></script>
<script type="text/javascript" src="scripts/modules/filter.invert.js"></script> <script type="text/javascript" src="scripts/modules/filter.offset.js"></script>
<script type="text/javascript" src="scripts/modules/filter.eval.js"></script> <script type="text/javascript" src="scripts/modules/filter.eval.js"></script>
<script type="text/javascript" src="scripts/modules/filter.balance.js"></script> <script type="text/javascript" src="scripts/modules/filter.balance.js"></script>

View File

@ -1,11 +0,0 @@
Filter.prototype.filter_invert = function(pixels = this.pixels(),p = null)
{
var d = pixels.data;
for (var i=0; i<d.length; i+=4) {
for (var j=0; j<3; j++) {
d[i+j] = 255 - d[i+j];
}
}
ronin.canvas.clear();
ronin.canvas.context().putImageData(pixels, 0, 0, 0, 0, pixels.width, pixels.height);
}

View File

@ -19,8 +19,9 @@ function Filter(element)
case "chromatic": case "chromatic":
this.filter_chromatic(this.pixels(),p); this.filter_chromatic(this.pixels(),p);
break; break;
case "invert": case "offset":
this.filter_invert(this.pixels(),p); this.filter_offset(this.pixels(),p);
break;
case "eval": case "eval":
this.filter_eval(this.pixels(),p); this.filter_eval(this.pixels(),p);
break; break;

View File

@ -0,0 +1,19 @@
Filter.prototype.filter_offset = function(pixels = this.pixels(),p = null)
{
var v = 255; // defaults to 255 if no parameter specified
if (p.length > 0 && p[0]) {
v = parseInt(p[0]);
// permissible range is 0 <= v <= 255
if (v > 255) { v = 255;}
if (v < 0) { v = 0;}
}
var d = pixels.data;
for (var i=0; i<d.length; i+=4) {
for (var j=0; j<3; j++) {
d[i+j] = v - d[i+j];
}
}
ronin.canvas.clear();
ronin.canvas.context().putImageData(pixels, 0, 0, 0, 0, pixels.width, pixels.height);
}