这是一个简单的用H5中的新特性canvas写的画板它实现了选择本机图片绘制在浏览器上,并可以用画笔涂鸦最后可以保存涂鸦.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">canvas{border:1px solid green;}
</style>
</head>
<body>
选择图片:<input id="file" type="file">
<button οnclick="restuya()">重新涂鸦</button>
<button οnclick="saveTu();">保存图片</button>
<hr>
<canvas id="canvas" width="1105" height="500">您的破浏览器不兼容,请升级!
</canvas>
<hr>
<div id="res"></div>
<script type="text/javascript">// 获取 canvas 对象var canvas = document.getElementById('canvas');// 获取绘图环境var ctx = canvas.getContext('2d');var last = null;var file = document.getElementById('file');// 文件对象var filedata = null;// 鼠标按下canvas.onmousedown = function(){// 在鼠标按下后触发鼠标移动事件canvas.onmousemove = move;}// 鼠标抬起取消鼠标移动的事件canvas.onmouseup = function(){canvas.onmousemove = null;   last = null;}// 鼠标移出画布时 移动事件也要取消。canvas.onmouseout = function(){canvas.onmousemove = null;last = null;}// 鼠标移动函数function move(e){// console.log(e.offsetX);if(last != null){ctx.beginPath();ctx.moveTo(last[0],last[1]);ctx.lineTo(e.offsetX,e.offsetY);ctx.stroke();}     // 第一次触发这个函数,只做一件事,把当前 鼠标的 x , y 的位置记录下来// 做下一次 线段的 起始点。last = [e.offsetX,e.offsetY];}// 当文件域内容发生改变时触发函数file.onchange = function(e){filedata = e.target.files[0];  //  实例化文件读取对象drawImg(filedata)}// 重新在画function restuya(){ctx.clearRect(0,0,canvas.width,canvas.height);drawImg(filedata)}// 绘制图片function drawImg(filedata){var readFile = new FileReader();readFile.readAsDataURL(filedata);// 图片读取成功readFile.onload = function(){// 结果// console.log(this.result);// this.result;// 第一种方法var Img = new Image();Img.src = this.result;Img.onload = function(){// 根据 图片的 宽高 来 设置canvas 宽和高 canvas.width = Img.width;canvas.height = Img.height;// console.log(Img.width);// canvas.width = 500;// canvas.width = 500;ctx.drawImage(Img,0,0);}}}// 保存图片function saveTu(){var saveImage = canvas.toDataURL('image/png');   document.getElementById('res').innerHTML = '<img src="'+saveImage+'">';}</script>
</body>
</html>

用canvas实现一个简易的涂鸦画板相关推荐

  1. 怎么画图自动生成HTML,用canvas写一个简易画图工具

    本文将为您描述用canvas写一个简易画图工具,具体操作方法: Document style="border:1px solid #000000;">您的浏览器不支持canv ...

  2. 用canvas画一个简易的机器猫头像

    用canvas画一个机器猫的头像,原图如下: 代码实现效果如下: 代码如下: <!DOCTYPE html> <html lang="en"> <he ...

  3. 用canvas实现一个简易绘图工具

    先看效果 这里可以选择颜色,从而进行在600px*400px画布中,随便画 ★HTML架构部分 <!-- HTML架构部分 --> <div><h3>简易绘图工具& ...

  4. iOS:quartz2D绘图小项目(涂鸦画板)

    介绍:学了quartz2D的绘图知识后,我根据它的一些功能制作了一个小项目:涂鸦画板. 功能:绘制各种图形,还可以选取相册上的照片做涂鸦,然后保存到相册中.其中,还包括功能有:颜色的选取.线宽的选取. ...

  5. 【Android】制作一个简易的画板

    前言 本文介绍使用Canvas.Paint.Path等原生API,实现一个简易的画板. 绘图原理 Paint Paint可以理解为我们现实中的画笔,在使用前我们需要对Paint进行初始化,比如颜色.画 ...

  6. android 简易涂鸦板,canvas实现的简易涂鸦板效果

    用canvas实现的简易涂鸦板效果,用鼠标点击在画布上随意涂鸦 涂鸦 *{ margin: 0; padding: 0; } #canvas1{ box-shadow: 0 5px 40px blac ...

  7. 使用canvas制作一个移动端画板

    概述 使用canvas做一个画板,代码里涵盖了一些canvas绘图的基本思想,各种工具的类也可以分别提出来用 详细 代码下载:http://www.demodashi.com/demo/10503.h ...

  8. 使用canvas建立一个可以使用彩笔、橡皮檫的画板

    使用canvas建立一个可以使用彩笔.橡皮檫的画板 我参加了一个web学习班,因为了解到写博客可以有效提高我的知识掌握水平,所以决定从我学习的内容来入手,废话不多说,开始今天的学习. 首先我们要在&l ...

  9. [Android]自定义绘制一个简易的音频条形图,附上对MP3音频波形数据的采集与展现

      在项目中需要到数据统计的地方,往往都需要到一些图的展示,比如曲线图.折线图.饼状图.圆形图.条形图等等.在本文中我们来实现一个简易的条形图的绘制.   首先,我们创建一个BarGraphView类 ...

  10. Android涂鸦画板原理详解——从初级到高级(二)

    前言 前面写了<Android涂鸦画板原理详解--从初级到高级(一)>,讲了涂鸦原理初级和中级的应用,现在讲解高级应用.如果没有看过前面一篇文章的同学,建议先去看看哈. 准备 高级涂鸦涉及 ...

最新文章

  1. WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-
  2. MHA 日常维护命令集
  3. PAT甲级1036 Boys vs Girls:[C++题解] 字符串处理
  4. zookeeper 常用命令示例
  5. 技术干货|基于Apache Hudi 的CDC数据入湖
  6. python处理行情数据_请教 Python 如何解析 DBF 文件, SJSHQ.dbf 上交所行情文件,数据来源于巨灵数据。...
  7. easyui扩展-日期范围选择.
  8. 利用正则表达式截取特定字符中间字符
  9. PowerBI 秒级实时大屏展示方案 全面助力双十一
  10. 小汤学编程之JavaEE学习day03——JSP组成结构、JSP原理、JSP生命周期、JSP九大内置对象、四大作用域、JSP的MVC模式
  11. 计算机科学渗透信息论的思想,信息系统思想在高中地理课程教学中的渗透方法分析...
  12. 云计算作业001-电脑配置
  13. activator.createinstance 需要垃圾回收么_Epsilon:你为什么需要一个不回收内存的垃圾回收器?...
  14. 处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外
  15. 用BeautifulSoup爬取豆瓣妹子的图片
  16. java复制文件乱码_为什么用JAVA写的一个复制文本文档的程序复制出来文本文档乱码...
  17. 外卖cps返利小程序饿了么美团对接公众号返利系统分销系统源码
  18. Mac安装Royal TSX
  19. Anaconda 修改文件保存路径
  20. java我们一起打雪仗_一起打雪仗的作文

热门文章

  1. 关于无法完全停止windowsUpdate的解决方法
  2. 加速度传感器灵敏度表示的几种方式LSB/g,count/g,V/g,V/°
  3. STN_空间变换网络
  4. 谈谈PRNU 光响应非均匀性
  5. c语言中while循环语句的作用,while和do while循环,C语言while和do while循环详解
  6. ipod nano7关机_iPod Nano-什么烂,什么不烂
  7. 笔记本计算机风扇声音大怎么办,教你怎么从解决笔记本风扇狂转、噪音过大!-电脑风扇声音大怎么办...
  8. # UDIG配图(sld)
  9. 2021-11-15求积分面积和旋转体积的二重积分方法
  10. 银河麒麟安装Wine