-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapp.js
More file actions
51 lines (44 loc) · 1.45 KB
/
Copy pathapp.js
File metadata and controls
51 lines (44 loc) · 1.45 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
const init = () => {
getBaseText()
getInitialImage()
generateScreenshot()
}
function getInitialImage() {
let request = new XMLHttpRequest();
let url = document.querySelector(".meme-image img").src
request.open('GET', url, true);
request.responseType = 'blob';
request.onload = function() {
var reader = new FileReader();
reader.onloadend = function() {
document.querySelector(".meme-image img").src = reader.result;
};
reader.readAsDataURL(request.response);
};
request.send();
}
function generateScreenshot() {
let meme = document.getElementById('meme')
html2canvas(meme, {scale: window.devicePixelRatio}).then(function(canvas) {
const data = canvas.toDataURL('image/jpeg');
const src = encodeURI(data);
document.getElementById("download-meme").setAttribute("href", src);
});
}
function getBaseUrl() {
var file = document.querySelector('input[type=file]')['files'][0];
var reader = new FileReader();
reader.onloadend = function() {
document.querySelector(".meme-image img").src = reader.result;
getBaseText(); // refresh text
generateScreenshot() // auto generates on image change
};
reader.readAsDataURL(file);
}
function getBaseText() {
document.querySelector(".meme-text pre").innerHTML = document.querySelector("textarea").value
generateScreenshot()
}
window.onload = init()
document.getElementById("meme-image").addEventListener("change", getBaseUrl);
document.getElementById("meme-text").addEventListener("mouseout", getBaseText);