Advertisement
mstranieri

PHP + CodeIgniter + Canvas // PARTE FRONTEND

Nov 11th, 2015
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 5.57 KB | None | 0 0
  1.     <div class="row">
  2.         <div class="col-lg-12">
  3.             <h1 class="page-header">
  4.                 Modifica sketch
  5.             </h1>
  6.         </div>
  7.     </div>
  8.  
  9.    
  10.     <div class="row">
  11.         <div class="col-md-6" style="position: inherit!important;">
  12.             <canvas id="can" width="800" height="600" style="position:relative; background: url('<?=$background?>') no-repeat; background-size: cover;"></canvas>
  13.         </div>
  14.        
  15.         <div class="col-md-6">
  16.             <h2>Seleziona il colore</h2>
  17.             <a href="#" id="green" onclick="color(this)"><i style="color: green;" class="fa fa-paint-brush fa-2x"></i></a>
  18.             <a href="#" id="blue" onclick="color(this)"><i style="color: blue;" class="fa fa-paint-brush fa-2x"></i></a>
  19.             <a href="#" id="red" onclick="color(this)"><i style="color: red;" class="fa fa-paint-brush fa-2x"></i></a>
  20.             <a href="#" id="yellow" onclick="color(this)"><i style="color: yellow;" class="fa fa-paint-brush fa-2x"></i></a>
  21.             <a href="#" id="orange" onclick="color(this)"><i style="color: orange;" class="fa fa-paint-brush fa-2x"></i></a>
  22.             <a href="#" id="black" onclick="color(this)"><i style="color: black;" class="fa fa-paint-brush fa-2x"></i></a>
  23.             <a href="#" id="white" onclick="color(this)"><i style="color: black;" class="fa fa-eraser fa-2x"></i></a><br /><br />
  24.            
  25.             <?php echo form_open("pages/save_sketch"); ?>
  26.                 <img id="canvasimg" style="display:none;">
  27.                 <input type="hidden" name="segment" id="segment" value="<?=$this->uri->segment('3')?>" />
  28.                 <input type="hidden" name="sketch" id="sketch" value="" />
  29.                 <input id="btn" name="btn_update" type="submit" class="btn btn-success" value="Salva" />
  30.                 <!-- <button id="btn" class="btn btn-success" onclick="save()"><i class="fa fa-check"></i> Salva</button> -->
  31.                 <!-- <button id="clr" class="btn btn-danger" onclick="erase()"><i class="fa fa-ban"></i> Cancella</button> -->
  32.             <?php echo form_close(); ?>
  33.             <?php echo $this->session->flashdata('msg'); ?>
  34.         </div>
  35.     </div>
  36.  
  37.  <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
  38.  
  39.  <script type="text/javascript">
  40.     $( document ).ready(function() {
  41.         init();
  42.  
  43.         var saved = "<?=$saved?>";
  44.  
  45.         if(saved != "") {
  46.             loadCanvas(saved);
  47.         }
  48.        
  49.         $("#btn").click(function(e) {
  50. //          e.preventDefault();
  51.             var dataURL = canvas.toDataURL();
  52.             $("#canvasimg").attr("src", dataURL);
  53.             $("#sketch").attr("value", $("#canvasimg").attr("src"));
  54.         });
  55.     });
  56.  
  57. var canvas, ctx, flag = false,
  58.     prevX = 0,
  59.     currX = 0,
  60.     prevY = 0,
  61.     currY = 0,
  62.     dot_flag = false;
  63.  
  64. var x = "red",
  65.     y = 2;
  66.  
  67.  
  68. function loadCanvas(dataURL) {
  69.     var canvas = document.getElementById('can');
  70.     var context = canvas.getContext('2d');
  71.  
  72.     var imageObj = new Image();
  73.     imageObj.onload = function() {
  74.       context.drawImage(this, 0, 0);
  75.     };
  76.  
  77.     imageObj.src = dataURL;
  78.  }
  79.  
  80. function init() {
  81.     canvas = document.getElementById('can');
  82.     ctx = canvas.getContext("2d");
  83.     w = canvas.width;
  84.     h = canvas.height;
  85.  
  86.     canvas.addEventListener("mousemove", function (e) {
  87.         findxy('move', e)
  88.     }, false);
  89.     canvas.addEventListener("mousedown", function (e) {
  90.         findxy('down', e)
  91.     }, false);
  92.     canvas.addEventListener("mouseup", function (e) {
  93.         findxy('up', e)
  94.     }, false);
  95.     canvas.addEventListener("mouseout", function (e) {
  96.         findxy('out', e)
  97.     }, false);
  98. }
  99.  
  100. function color(obj) {
  101.     switch (obj.id) {
  102.         case "green":
  103.             x = "green";
  104.             break;
  105.         case "blue":
  106.             x = "blue";
  107.             break;
  108.         case "red":
  109.             x = "red";
  110.             break;
  111.         case "yellow":
  112.             x = "yellow";
  113.             break;
  114.         case "orange":
  115.             x = "orange";
  116.             break;
  117.         case "black":
  118.             x = "black";
  119.             break;
  120.         case "white":
  121.             x = "white";
  122.             break;
  123.     }
  124.     if (x == "white") y = 14;
  125.     else y = 2;
  126.  
  127. }
  128.  
  129. function draw() {
  130.     ctx.beginPath();
  131.     ctx.moveTo(prevX, prevY);
  132.     ctx.lineTo(currX, currY);
  133.     ctx.strokeStyle = x;
  134.     ctx.lineWidth = y;
  135.     ctx.stroke();
  136.     ctx.closePath();
  137. }
  138.  
  139. function erase() {
  140.     var m = confirm("Want to clear");
  141.     if (m) {
  142.         ctx.clearRect(0, 0, w, h);
  143.         document.getElementById("canvasimg").style.display = "none";
  144.     }
  145. }
  146.  
  147. function save() {
  148.     document.getElementById("canvasimg").style.border = "2px solid";
  149.     var dataURL = canvas.toDataURL();
  150.     document.getElementById("canvasimg").src = dataURL;
  151.     $("#sketch").attr("value", $("#canvasimg").attr("src"));
  152. //     document.getElementById("canvasimg").style.display = "inline";
  153. }
  154.  
  155. function findxy(res, e) {
  156.     if (res == 'down') {
  157.         prevX = currX;
  158.         prevY = currY;
  159.         currX = e.clientX - canvas.offsetLeft;
  160.         currY = e.clientY - canvas.offsetTop;
  161.  
  162.         flag = true;
  163.         dot_flag = true;
  164.         if (dot_flag) {
  165.             ctx.beginPath();
  166.             ctx.fillStyle = x;
  167.             ctx.fillRect(currX, currY, 2, 2);
  168.             ctx.closePath();
  169.             dot_flag = false;
  170.         }
  171.     }
  172.     if (res == 'up' || res == "out") {
  173.         flag = false;
  174.     }
  175.     if (res == 'move') {
  176.         if (flag) {
  177.             prevX = currX;
  178.             prevY = currY;
  179.             currX = e.clientX - canvas.offsetLeft;
  180.             currY = e.clientY - canvas.offsetTop;
  181.             draw();
  182.         }
  183.     }
  184. }
  185. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement