merge changes

This commit is contained in:
Alexander Cobleigh 2016-11-21 18:27:42 +01:00
commit f1b68b52c1
6 changed files with 81 additions and 0 deletions

View File

@ -24,6 +24,8 @@
<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.invert.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/keyboard.js"></script>
<script type="text/javascript" src="scripts/command.js"></script>

BIN
media/filter.color.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@ -6,6 +6,7 @@ function Command(content)
function raster(array) // @ {50w}x100
{
return array;
var str = array.join(" ");
var m = str.replace(/(\{(.*)\})/g, function(a) {

View File

@ -0,0 +1,46 @@
Filter.prototype.filter_balance = function(pixels = this.pixels(),p = null)
{
// / media/filter.color.jpg
// : balance 0.5 2.4 1.2
p[0] = parseFloat(p[0]);
p[1] = p[1] ? parseFloat(p[1]) : parseFloat(p[0]);
p[2] = p[2] ? parseFloat(p[2]) : parseFloat(p[0]);
var data = pixels.data;
// Multiply
if(p[0] % 1 !== 0 && p[1] % 1 !== 0 && p[2] % 1 !== 0){
console.log("Multi");
for (var i = 0; i < data.length; i += 4) {
data[i] = data[i] * p[0]; // red
data[i + 1] = data[i + 1] * p[1]; // green
data[i + 2] = data[i + 2] * p[2]; // blue
// Clamp
data[i] = data[i] < 255 ? data[i] : 255;
data[i + 1] = data[i + 1] < 255 ? data[i + 1] : 255;
data[i + 2] = data[i + 2] < 255 ? data[i + 2] : 255;
}
}
// Add
else{
p[0] = parseInt(p[0]);
p[1] = p[1] ? parseInt(p[1]) : parseInt(p[0]);
p[2] = p[2] ? parseInt(p[2]) : parseInt(p[0]);
for (i = 0; i < data.length; i += 4) {
data[i] = data[i] + p[0]; // red
data[i + 1] = data[i + 1] + p[1]; // green
data[i + 2] = data[i + 2] + p[2]; // blue
// Clamp
data[i] = data[i] < 255 ? data[i] : 255;
data[i + 1] = data[i + 1] < 255 ? data[i + 1] : 255;
data[i + 2] = data[i + 2] < 255 ? data[i + 2] : 255;
}
}
ronin.canvas.clear();
ronin.canvas.context().putImageData(pixels, 0, 0, 0, 0, pixels.width, pixels.height);
}

View File

@ -0,0 +1,27 @@
Filter.prototype.filter_eval = function(pixels = this.pixels(),p = null)
{
console.log("working");
// : eval {x} % 100 == 0
var data = pixels.data;
for (var i = 0; i < data.length; i += 4) {
var x = (i/4) % pixels.width;
var y = Math.floor((i/4)/pixels.width);
var q = (x % parseInt(p[0]) === 0 && y % parseInt(p[1]) === 0);
if(q === true){
data[i] = 255; // red
data[i + 1] = 0; // green
data[i + 2] = 0; // blue
data[i + 3] = 255; // alpha?
}
}
ronin.canvas.clear();
ronin.canvas.context().putImageData(pixels, 0, 0, 0, 0, pixels.width, pixels.height);
console.log("done.");
}

View File

@ -21,6 +21,11 @@ function Filter(element)
break;
case "invert":
this.filter_invert(this.pixels(),p);
case "eval":
this.filter_eval(this.pixels(),p);
break;
case "balance":
this.filter_balance(this.pixels(),p);
break;
}
}