HTML5 Canvas实现涂鸦画板简单实例一则

2018-11-07JavaScript881
  • 详情内容
  • 留言点评

我们知道HTML5 Canvas与原生JS结合有无限可能,今天分享的是HTML5 Canvas实现涂鸦画板简单实例一则,以下是实例全部代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>HTML5 Canvas自定义画板-益吾库</title>
</head>
<body>
<canvas id="canvas" width="600" height="300">
  您的浏览器不支持canvas!
</canvas>
<br/>
<button style="width:80px;background-color:yellow;" onclick='linecolor="yellow";'>YELLOW</button>
<button style="width:80px ;background-color:red;" onclick='linecolor="red";'>RED</button>
<button style="width:80px ;background-color:blue;" onclick='linecolor="blue";'>BLUE</button>
<button style="width:80px ;background-color:green;" onclick='linecolor="green";'>GREEN</button>
<button style="width:80px ;background-color:white;" onclick='linecolor="white";'>WHITE</button>
<button style="color:#fff;width:80px ;background-color:black;" onclick='linecolor="black";'>BLACK</button>
<br/>
<button style="width: 80px;background-color: white;" onclick="linw=4;">4PX</button>
<button style="width: 80px;background-color: white;" onclick="linw=8;">8PX</button>
<button style="width: 80px;background-color: white;" onclick="linw=16;">16PX</button>
<br/>
<button style="width: 80px;background-color: white;" onclick="copyimage();">导出</button>
<br/>
<img src="" id="image_png" width="600px" height="300px">
<script type="text/javascript">
  var canvas = document.getElementById('canvas'); //获取标签
  var ctx = canvas.getContext("2d"); 
  
  var fillStyle = "black";
  ctx.fillRect(0,0,600,300);
  var onoff = false; //按下标记
  var oldx = -10;
  var oldy = -10;
  //设置颜色
  var linecolor = "white";
  var linw = 4;
  canvas.addEventListener("mousemove",draw,true); //鼠标移动事件
  canvas.addEventListener("mousedown",down,false); //鼠标按下事件
  canvas.addEventListener("mouseup",up,false); //鼠标弹起事件
  function down(event){
    onoff = true;
    oldx = event.pageX - 10;
    oldy = event.pageY - 10;
  }
  function up(){
    onoff = false;
  }
  function draw(event){
    if (onoff==true) {
      var newx = event.pageX - 10;
      var newy = event.pageY - 10
      ctx.beginPath();
      ctx.moveTo(oldx,oldy);
      ctx.lineTo(newx,newy);
      ctx.strokeStyle = linecolor;
      ctx.lineWidth = linw;
      ctx.lineCap = "round";
      ctx.stroke();
  
      oldx = newx;
      oldy = newy;
    }
  }
  function copyimage(event)
  {
    var img_png_src = canvas.toDataURL("image/png"); //将画板保存为图片格式的函数
    document.getElementById("image_png").src = img_png_src;
  }
</script> 
</body>
</html>

该实例生成图片可以保存,但在本页运行演示时可能不可直接保存,可以在新窗口中打开图片后再进行保存操作。

欢迎点评!也可以是问题反馈和建议

支持Ctrl+Enter提交
暂无留言,快抢沙发!
1

真心很赞,必须打赏!嗯,以资鼓励~

点此打赏

99%看过的人还会看

老铁,别说没提醒你,双11期间实体店消费,先用手机支付宝搜索“7629723”可以抢红包,玩法已限时升级,红包种类和金额都更嗨咯