-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFilter.js
72 lines (65 loc) · 1.72 KB
/
Filter.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
var imgFile;
var image = null;
var imageGray = null;
var imageRed = null;
var imageRainbow = null;
var canvas = null;
function loadImage(){
canvas = document.getElementById("can");
imgFile = document.getElementById("file");
image = new SimpleImage(imgFile);
imageGray = new SimpleImage(imgFile);
imageRed = new SimpleImage(imgFile);
imageRainbow = new SimpleImage(imgFile);
image.drawTo(canvas);
}
function imageIsLoaded(img) {
if (img==null || !img.complete()) {
alert("Image not loaded");
return false;
}
else {
return true;
}
}
function doGray(){
if (imageIsLoaded(image)) {
for (var pixel of imageGray.values()) {
var arg = (pixel.getRed() + pixel.getGreen() + pixel.getBlue())/3;
pixel.setRed(arg);
pixel.setGreen(arg);
pixel.setBlue(arg);
}
imageGray.drawTo(canvas);
}
}
function doRed(){
if (imageIsLoaded(image)) {
for (var pixel of imageRed.values()) {
var arg = (pixel.getRed() + pixel.getGreen() + pixel.getBlue())/3;
if (arg < 128) {
pixel.setRed(arg*2);
pixel.setGreen(0);
pixel.setBlue(0);
}
else {
pixel.setRed(255);
pixel.setGreen(arg*2-255);
pixel.setBlue(arg*2-255);
}
}
imageRed.drawTo(canvas);
}
}
function doRainbow(){
if (imageIsLoaded(image)) {
imageRainbow.drawTo(canvas);
}
}
function Reset(){
image = new SimpleImage(imgFile);
imageGray = new SimpleImage(imgFile);
imageRed = new SimpleImage(imgFile);
imageRainbow = new SimpleImage(imgFile);
image.drawTo(canvas);
}