-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathimage.html
More file actions
105 lines (96 loc) · 6.08 KB
/
image.html
File metadata and controls
105 lines (96 loc) · 6.08 KB
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Image Manipulation</title>
<link rel="shortcut icon" href="https://bintangfadhlio.blogspot.com/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="script/style.css">
</head>
<body>
<div class="nav">
<input type="checkbox" id="nav-check">
<div class="nav-header">
<div class="nav-title">
<a href="index.html">
<img src="img/logo.png" height="50px" style="margin: 0px 30px">
</a>
</div>
</div>
<div class="nav-btn">
<label for="nav-check">
<span></span>
<span></span>
<span></span>
</label>
</div>
<div class="nav-links">
<a href="index.html">Home</a>
<a class="active" href="image.html">Image Manipulation</a>
<a href="animation.html">Animation Images</a>
<a href="audio.html">Audio</a>
<a href="video.html">Video</a>
<a href="360.html">Photo 360</a>
<a href="about.html">About Me</a>
</div>
</div>
<div class="box">
<h1>Image Manipulation</h1>
<p>
Dimana ini akan merubah atau memanipulasi gambar dengan menggunakan javascript.
</p>
<div class="tab">
<button class="tablinks" onclick="openImage(event, 'Asli')" id=defaultOpen>Asli</button>
<button class="tablinks" onclick="openImage(event, 'Grayscale')">Grayscale</button>
<button class="tablinks" onclick="openImage(event, 'Sepia')">Sepia</button>
<button class="tablinks" onclick="openImage(event, 'Threshold')">Threshold</button>
</div>
<div id="Asli" class="tabcontent">
<h3>Asli</h3>
<canvas id="1" width="480" height="360"></canvas>
</div>
<div id="Grayscale" class="tabcontent">
<h3>Grayscale</h3>
<p>
Grayscale adalah berbagai nuansa warna monokromatik dari hitam menjadi putih.
Oleh karena itu, gambar grayscale hanya memiliki warna abu-abu dan tidak
berwarna. Grayscale dipengaruhi oleh intensitas dari hitam (nol intensitas) dan putih (penuh intensitas).
Biasanya grayscale mendukung minimal 8-bit grayscale, yang memiliki 256 level pencahayaan per pixel.
</p>
<h4>
var makePixelGrayScale = function (r,g,b,a){<br>
 var y = (0.5*r)+(0.59*g)+(0.11*b);<br>
 return {r:y, g:y, b:y, a:y};<br>
}<br>
</h4>
<canvas id="2" width="480" height="360"></canvas>
</div>
<div id="Sepia" class="tabcontent">
<h3>Sepia</h3>
<p>
Proses yang dilakukan untuk manipulasi sepia dengan membuat variabel baru yang berisi warna sepia pada tiap RGB<br>
lalu rubah warna asli dengan warna sepia.
</p>
<h4>
for (var i=0; i < imageData.data.length; i+=4) {<br>
 imageData.data[i] = r[imageData.data[i]];<br>
 imageData.data[i+1] = g[imageData.data[i+1]];<br>
 imageData.data[i+2] = b[imageData.data[i+2]];<br>
}<br>
</h4>
<canvas id="3" width="480" height="360"></canvas>
</div>
<div id="Threshold" class="tabcontent">
<h3>Threshold</h3>
<p>Nilai intensitas citra yang lebih dari atau sama dengan nilai threshold (disini saya menggunakan nilai threshold 150)<br>
akan diubah menjadi putih 255, sedangkan nilai intensitas citra yang kurang dari nilai threshold akan diubah menjadi hitam 0.</p>
<h4>
var v = (0.2126*r + 0.7152*g + 0.0722*b >= 150) ? 255 : 0;
</h4>
<canvas id="4" width="480" height="360"></canvas>
</div>
</div>
<script src="script/image.js"></script>
</body>
</html>