-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgrayscale.html
87 lines (87 loc) · 3.42 KB
/
grayscale.html
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<html>
<head>
<meta name="copyright" content="Copyright © 2017/04/17- [email protected] . All Rights Reserved.">
<meta charset="utf-8">
<title> Grayscale </title>
<link rel="stylesheet" href="index.css">
<style>
div.box { float:left ; }
</style>
</head>
<body>
<div class="container">
<div id="controlPanel">
<div>
maxWidthHeight:<input id="maxWidthHeightRange" type="range" min="16" max="2048" step="1" value="300">:<input type="text" id="maxWidthHeightText" size="5">
color factor:<input id="colorFactorRange" type="range" min="-1" max="2" step="0.05" value="0">:<input type="text" id="colorFactorText" size="4">
linearGamma:<input id="linearGammaCheckbox" type="checkbox" />
</div>
</div> <!-- controlPanel -->
<div class="box">
<canvas id="srcCanvas" class="borderRed" width=200 height=200> srcCanvas </canvas>
</div>
<div class="box">
<div> (R + G + B) / 3 </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> R/4 + G/2 + B/4 // Y(CgCo) </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> 0.299*R+0.587*G+0.114*B // BT.601 </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> 0.30*R+0.59*G+0.11*B // Japan analog TV </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> 0.3*R+0.6*G+0.1*B // BT.601 rough </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> 0.2126*R+0.7152*G+0.0722*B // BT.709 </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> 0.3086*R+0.6094*G+0.0820*B // Paul Haeberli </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> (max(R,G,B)+min(R,G,B))/2// HSL </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> max(R,G,B) // HSV (Maximum) </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> min(R,G,B) // Minimum </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> [R,G,B].sort()[1] // Median </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> G // Green only </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> B // Blue only </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
<div class="box">
<div> RGB2XYZ([R,G,B])[1] // CIE-XYZ (linear) </div>
<canvas class="dstCanvas borderBlue" width=200 height=200> </canvas>
</div>
</div> <!-- container -->
<script type="text/javascript" src="lib/drop.js"> </script>
<script type="text/javascript" src="lib/bind.js"> </script>
<script type="text/javascript" src="lib/canvas.js"> </script>
<script type="text/javascript" src="lib/loading.js"> </script>
<script type="text/javascript" src="lib/worker.js"> </script>
<script type="text/javascript" src="grayscale.js"> </script>
</body>
</html>