JS Upload Image (by image objct)
JS upload image by image objct and draw canvas.
by Tinytsunami
HTML
<div id="demo">
<canvas width="300px" height="300px"></canvas>
<div>
<label>
<input type="file" accept="image/*"/>
<div>select file</div>
</label>
<button>upload</button>
</div>
</div>
CSS
body {
color: #ffffff;
background: #20262e;
font-family: monospace, sans-serif;
}
#demo {
padding: 5px;
}
#demo canvas {
border: solid 1px #ffffff;
}
#demo>div {
margin-top: 5px;
}
#demo label input {
color: #ffffff;
background: #20262e;
outline: none;
display: none;
}
#demo label div {
float: left;
font-weight: bold;
font-size: 13.3333px;
text-align: center;
padding: 1px 6px;
margin-right: 10px;
color: #ffffff;
background: #20262e;
border: 1px solid #ffffff;
outline: none;
}
#demo label div:hover {
color: #20262e;
background: #ffffff;
border: 1px solid #ffffff;
}
#demo button {
float: left;
color: #ffffff;
background: #20262e;
border: 1px solid #ffffff;
outline: none;
margin-right: 10px;
}
#demo button:hover {
color: #20262e;
background: #ffffff;
border: 1px solid #ffffff;
}
JavaScript
(function() {
/* get elements */
let root = document.getElementById("demo");
let canvasNode = root.getElementsByTagName("canvas")[0];
let divNode = root.getElementsByTagName("div");
let inputNode = root.getElementsByTagName("input")[0];
let buttonNode = root.getElementsByTagName("Button")[0];
let fileNode = root.getElementsByTagName("div")[1];
let context = canvasNode.getContext("2d");
inputNode.onchange = function() {
let file = inputNode.files[0];
if (file)
fileNode.innerHTML = `${file.name}`;
};
/* process image */
buttonNode.onclick = function() {
let file = inputNode.files[0];
let img = new Image();
img.onload = function() {
context.drawImage(img, 0, 0);
};
img.src = URL.createObjectURL(file);
};
})();