-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
81 lines (65 loc) · 2.31 KB
/
Copy pathscript.js
File metadata and controls
81 lines (65 loc) · 2.31 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
let filterA = document.getElementById("blur");
let filterB = document.getElementById("contrast");
let filterC = document.getElementById("hue-rotate");
let filterD = document.getElementById("sepia");
let noFlipBtn = document.getElementById("no-flip");
let flipXBtn = document.getElementById("flip-x");
let flipYBtn = document.getElementById("flip-y");
let uploadButton = document.getElementById("upload-button");
let image = document.getElementById("chosen-image");
function resetFilter(){
filterA.value = "0";
filterB.value = "100";
filterC.value = "0";
filterD.value = "0";
noFlipBtn.checked = true;
addFilter();
flipImage();
}
uploadButton.onchange = () => {
resetFilter();
document.querySelector(".image-container").style.display = "block";
let reader = new FileReader();
reader.readAsDataURL(uploadButton.files[0]);
reader.onload = () => {
image.setAttribute("src", reader.result);
}
}
let sliders = document.querySelectorAll(".filter input[type='range']");
sliders.forEach( slider => {
slider.addEventListener("input", addFilter);
});
function addFilter(){
image.style.filter = `blur(${filterA.value}px) contrast(${filterB.value}%) hue-rotate(${filterC.value}deg) sepia(${filterD.value}%)`;
}
let radioBtns = document.querySelectorAll(".flip-option input[type='radio']");
radioBtns.forEach( radioBtn => {
radioBtn.addEventListener("click", flipImage);
});
function flipImage(){
if(flipXBtn.checked){
image.style.transform = "scaleX(-1)";
}
else if(flipYBtn.checked){
image.style.transform = "scaleY(-1)";
}
else{
image.style.transform = "scale(1,1)";
}
}
function cropImg(){
const canvas = document.getElementById('image');
const ctx = canvas.getContext('2d');
var image = new Image();
image.onload = function(){
ctx.drawImage(image, 150, 200, 500, 300, 60,60, 500, 300);
}
}
cropImg();
const downloadBtn = document.querySelector("button.download");
downloadBtn.addEventListener('click', function() {
let tempLink = document.createElement('a');
tempLink.download = 'puppy-cropped.jpg';
tempLink.href = document.getElementById('canvas').toDataURL("image/jpeg", 0.9);
tempLink.click();
});