Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function rgbatohex(r,g,b,a=255) {
- if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(a)) return;
- r = parseInt(r);
- g = parseInt(g);
- b = parseInt(b);
- a = parseInt(a);
- r = ("00000" + r.toString(16)).slice(-2);
- g = ("00000" + g.toString(16)).slice(-2);
- b = ("00000" + b.toString(16)).slice(-2);
- a = ("00000" + a.toString(16)).slice(-2);
- if (a == 'ff') return "#"+r+g+b; else return "#"+r+g+b+a;
- };
- var upload = document.createElement("input");
- var mousedown = canvas.onmousedown;
- var mousemove = canvas.onmousemove;
- var paste = document.createElement("button");
- paste.innerHTML = "paste";
- paste.onclick = function () {
- rct = canvas.getBoundingClientRect();
- if (imagea == null) return;
- this.innerHTML = "now click where you want to paste it!";
- canvas.onmousedown = function (e) {
- createClientMessage("Pasting..");
- paste.innerHTML = "paste";
- this.onmousedown = mousedown;
- this.onmousemove = mousemove;
- const img = new Image();
- img.crossOrigin = "anonymous";
- img.src = imagea;
- img.onload = function () {
- const c = new OffscreenCanvas(0,0);
- const ctx = c.getContext('2d');
- c.width = img.width;
- c.height = img.height;
- ctx.drawImage(img,0,0);
- var imgdata = ctx.getImageData(0,0,c.width,c.height).data;
- stopdraw();
- for (let i = 0; i < c.height; i++) {
- for (let j = 0; j < c.width; j++) {
- var k = (i * c.width + j) * 4;
- var pixeldata = [imgdata[k], imgdata[k + 1], imgdata[k + 2], imgdata[k + 3]];
- if (!pixeldata[3]) continue;
- drawLine(e.clientX-rct.left+j+0.5,e.clientY-rct.top+i+0.5,e.clientX-rct.left+j+0.5,e.clientY-rct.top+i+0.5,rgbatohex(...pixeldata), 1);
- };
- };
- };
- };
- };
- document.body.appendChild(paste);
- let imagea = null;
- upload.setAttribute("id", "FileUpload");
- upload.setAttribute("type", "file");
- upload.setAttribute("accept", "image/png, image/jpeg");
- document.body.appendChild(upload);
- document.getElementById("FileUpload").onchange = function (e) {
- var tgt = e.target,
- files = tgt.files;
- if (FileReader && files && files.length) {
- var fr = new FileReader();
- fr.onload = function () {
- imagea = fr.result;
- };
- fr.readAsDataURL(files[0]);
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement