var mousePressed = false; var lastX, lastY; var ctx, ctx2; function InitThis() { ctx = document.getElementById('myCanvas').getContext("2d"); ctx2 = document.getElementById('myCanvas2').getContext("2d"); $('#myCanvas').mousedown(function (e) { mousePressed = true; Draw(e.pageX - $(this).offset().left, e.pageY - $(this).offset().top, false); }); $('#clear-area').mousedown(function (e) { clearArea(); }); $('#upload-area').mousedown(function (e) { //uploadArea2(); }); $('#myCanvas').mousemove(function (e) { if (mousePressed) { Draw(e.pageX - $(this).offset().left, e.pageY - $(this).offset().top, true); } }); $('#myCanvas').mouseup(function (e) { mousePressed = false; //alert("mouseup") }); $('#myCanvas').mouseleave(function (e) { mousePressed = false; //alert("mouseleave") }); document.addEventListener('touchstart',function(e){ mapTouchEvents(e,'mousedown'); },true); document.addEventListener('touchmove',function(e){ mapTouchEvents(e,'mousemove'); },true); document.addEventListener('touchend',function(e){ mapTouchEvents(e,'mouseup'); },true); document.addEventListener('touchcancel',function(e){ mapTouchEvents(e,'mouseup'); },true); } function uploadArea() { alert('Inside Upload....'); console.log("Inside Upload...."); var image = document.getElementById("myCanvas").toDataURL("image/png").replace("image/png", "image/octet-stream"); var data = new FormData(); data["file"] = image; console.log(data); $.ajax({ url: 'http://localhost:9000/upload/', type: 'POST', data: data, cache: false, dataType: 'json', processData: false, contentType: false, success: function( data , textStatus , jqXHR ) { if( typeof data.error === 'undefined' ) { submitForm( event, data ); } else { alert( 'ERRORS: ' + data.error ); } }, error: function(jqXHR, textStatus, errorThrown) { alert( 'error on upload' ); } }); } function getDstImage(data) { console.log("Entering into getDstImage") var fname = "./img/" switch(data["classification"]) { case 1: return fname+"1.jpg" case 2: return fname+"2.png" case 3: return fname+"3.png" case 4: return fname+"4.jpg" case 5: return fname+"5.png" case 6: return fname+"6.jpg" case 7: return fname+"7.png" case 8: return fname+"8.png" case 9: return fname+"9.png" default: return "error" } } function uploadArea2() { var canvas = document.getElementById("myCanvas") canvas.toBlob( function (blob) { // Do something with the blob object, // e.g. creating a multipart form for file uploads: var formData = new FormData(); formData.append('file', blob, "predict.png"); $.ajax({ url: 'http://localhost:9000/upload/', type: 'POST', data: formData, cache: false, dataType: 'json', processData: false, contentType: false, success: function( data , textStatus , jqXHR ) { if( typeof data.error === 'undefined' ) { //submitForm( event, data ); } else { alert( 'ERRORS: ' + data.error ); } console.log("Inside success of uploadArea2") var canvas = document.getElementById("myCanvas2"); var ctx = canvas.getContext("2d"); var image = new Image(); image.src = getDstImage(data); image.onload = function() { ctx.drawImage(image, 0, 0); }; }, error: function(jqXHR, textStatus, errorThrown) { alert( 'error on upload2' ); alert(textStatus);} }); /* ... */ }, 'image/png' ); } function Draw(x, y, isDown) { if (isDown) { ctx.beginPath(); ctx.strokeStyle = $('#selColor').val(); // ctx.lineWidth = $('#selWidth').val(); ctx.lineWidth = 9; ctx.lineJoin = "round"; ctx.moveTo(lastX, lastY); ctx.lineTo(x, y); ctx.closePath(); ctx.stroke(); } lastX = x; lastY = y; //alert("Drawing done...."); //console.log("Drawing done....."); //doUpload(); } function clearArea() { // Use the identity matrix while clearing the canvas ctx.setTransform(1, 0, 0, 1, 0, 0); ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); ctx2.setTransform(1, 0, 0, 1, 0, 0); ctx2.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); }