Javascript HTML5 Canvas实现的一个画板


Posted in Javascript onApril 12, 2020

本文实例为大家分享了HTML5 Canvas实现的一个画板代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>DEMO6:自定义画板</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="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();">EXPORT</button>
 
<br/>
<img src="" id="image_png" width="600px" height="300px">
<br/>
 
<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>

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JS 无法通过W3C验证的处理方法
Mar 09 Javascript
浅析document.ready和window.onload的区别讲解
Dec 18 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
Sep 04 Javascript
Jquery 实现checkbox全选方法
Jan 28 Javascript
javascript中cookie对象用法实例分析
Jan 30 Javascript
深入理解JavaScript编程中的原型概念
Jun 25 Javascript
基于javascript实现样式清新图片轮播特效
Mar 30 Javascript
JavaScript 数据类型详解
Mar 13 Javascript
JavaScript简单拖拽效果(1)
May 17 Javascript
axios拦截设置和错误处理方法
Mar 05 Javascript
微信小程序实现张图片合成为一张并下载
Jul 16 Javascript
JS函数进阶之prototy用法实例分析
Jan 15 Javascript
bootstrap3 兼容IE8浏览器!
May 02 #Javascript
javascript实现列表切换效果
May 02 #Javascript
基于javascript编写简单日历
May 02 #Javascript
Bootstrap媒体对象的实现
May 01 #Javascript
Bootstrap进度条组件知识详解
May 01 #Javascript
BootStrap glyphicons 字体图标实现方法
May 01 #Javascript
JS实现左右无缝轮播图代码
May 01 #Javascript
You might like
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
判断用户的在线状态 onbeforeunload事件
2011/03/05 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python检测某个变量是否有定义的方法
2015/05/20 Python
Python两个字典键同值相加的几种方法
2019/03/05 Python
使用python绘制温度变化雷达图
2019/10/18 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
EJB的几种类型
2012/08/15 面试题
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
学校门卫岗位职责范本
2014/06/30 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle