HTML5实现涂鸦板
原文:HTML5实现涂鸦板
最近闲的,看了看html5,强大的绘图功能让我惊奇,于是,写了个小玩意---涂鸦板,能实现功能有:画画,改色,调整画笔大小
html5的绘图可以分为点,线,面,圆,图片等,点和线,这可是所有平面效果的基点,有了这两个东西,没有画不出来的东西,只有想不到的算法。
先上代码了:
html
<body style="cursor:pointer">
<canvas id="mycavas" width="1024" height="400" style="border:solid 4px #000000"></canvas><!--画布-->
<input type="color" id="color1" name="color1"/><!--设色器-->
<output name="a" for="color1" onforminput="innerHTML=color1.value"></output>
<input type="range" name="points" id="size" min="5" max="20" /><!--拖动条-->
</body>
效果:

好了,一个简陋的画图界面就搞好啦,
下面开始写一些画线的代码
$.Draw = {};
$.extend($.Draw, {
D2: "",
CX:"",
Box: "mycavas",//画布id
BoxObj:function(){//画布对象
this.CX=document.getElementById(this.Box);
},
D2:function(){//2d绘图对象
this.D2 = this.CX.getContext("2d");
},
Cricle: function (x, y, r, color) {//画圆
if (this.D2) {
this.D2.beginPath();
this.D2.arc(x, y, r, 0, Math.PI * 2, true);
this.D2.closePath();
if (color) {
this.D2.fillStyle = color;
}
this.D2.fill();
}
},
init: function () {//初始化
this.BoxObj();
this.D2();
}
})
相信这里的简单代码大家都看得懂,主要就是创建了一个对象,包含创建画布,创建2d对象,画圆方法,和对象初始化方法。
接下里前台html页面来调用这个对象
看代码:
var color = "#000000";//初始化颜色
var size = 5;//初始化尺寸
document.getElementById('color1').onchange = function () {
color = this.value;
};
document.getElementById('size').onchange = function () {
size = this.value;
};
$.Draw.init();//初始化
var tag = false;//控制鼠标当前状态并起到开启油墨开关的作用
var current = {};//存储鼠标按下时候的点
document.onmousedown = function (option) {//鼠标按下事件
current.x = option.x;
current.y = option.y;
$.Draw.Cricle(option.x, option.y, size, color);
tag = true;
}
document.onmouseup = function () {//鼠标抬起事件
tag = false;
}
document.onmousemove = function (option) {//鼠标移动事件
if (tag) {
if (size >= 0) {
$.Draw.Cricle(option.x, option.y, size, color);
}
}
}
这段代码主要有如下几个意思
1.捕获颜色空间和拖动条控件的change事件,从而获取对应的颜色和尺寸的数值,存储下来供下面画线用
2.初始化画图对象
3.捕获鼠标的按下,抬起和移动事件,关键在一个开关可以控制油墨
好了,一个简单的涂鸦板就好了,上我的书法:

是不是有点闲的蛋疼呢,呵呵!书法不如当年
HTML5实现涂鸦板的更多相关文章
- iOS_Quartz2D之涂鸦板
响应者对象:继承了UIResponder的对象 触摸事件:一根或多根手指: 开始触摸: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent ...
- 重新想象 Windows 8 Store Apps (51) - 输入: 涂鸦板
[源码下载] 重新想象 Windows 8 Store Apps (51) - 输入: 涂鸦板 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 涂鸦板 通过 Poin ...
- Android应用开发实例篇(1)-----简易涂鸦板
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/03/2378328.html 一.概述 这次要做一个简单的涂鸦板应用,以前在Qt上实现过,突然想 ...
- 实现简单的手写涂鸦板(demo源码)
在一些软件系统中,需要用到手写涂鸦的功能,然后可以将涂鸦的结果保存为图片,并可以将"真迹"通过网络发送给对方.这种手写涂鸦功能是如何实现的了?最直接的,我们可以使用Windows提 ...
- 背水一战 Windows 10 (60) - 控件(媒体类): Pointer 涂鸦板, InkCanvas 涂鸦板
[源码下载] 背水一战 Windows 10 (60) - 控件(媒体类): Pointer 涂鸦板, InkCanvas 涂鸦板 作者:webabcd 介绍背水一战 Windows 10 之 控件( ...
- PPAPI+Skia实现的涂鸦板
在PPAPI插件中使用Skia画图介绍了怎样在PPAPI中使用Skia,文末说回头要提供一个简单的涂鸦板插件,这次我来兑现承诺了. foruok原创,关注微信订阅号"程序视界"可联 ...
- html5 canvas 涂鸦画板
html5 canvas 的涂鸦画板,可以加载图片进行涂鸦,也可以下载服务器使用的php上传的图片不能超过1M,只能是jpg或者png 格式的演示地址的服务器网速不怎么样,读取文件可能很慢,到达100 ...
- mooc上学习acllib后写的包含背景音乐的小涂鸦板(初入江湖,大佬勿喷)
#include "acllib.h"ACL_Sound sound1;ACL_Image img;//开始图ACL_Image img1;//涂鸦图ACL_Color c=RED ...
- 【Android】自己定义View、画家(画布)Canvas与画笔Paint的应用——绘图、涂鸦板app的实现
利用一个简单的绘图app来说明安卓的图形处理类与自己定义View的应用. 例如以下图,有一个供用户自己随意绘图.涂鸦的app. 这里不做那么花俏了,仅提供黑白两色.但能够改变笔尖的粗细. 实质上这里的 ...
随机推荐
- POJ 3280 Cheapest Palindrome (DP)
Description Keeping track of all the cows can be a tricky task so Farmer John has installed a sys ...
- SQL Server 2008性能故障排查(一)——概论
原文:SQL Server 2008性能故障排查(一)--概论 备注:本人花了大量下班时间翻译,绝无抄袭,允许转载,但请注明出处.由于篇幅长,无法一篇博文全部说完,同时也没那么快全部翻译完,所以按章节 ...
- Visual Studio Team Services使用教程--邀请团队成员
- Windows Phone 8 ControlTiltEffect
/* Copyright (c) 2010 Microsoft Corporation. All rights reserved. Use of this sample source code is ...
- Cocos2d:使用 CCCamera 做滚动效果 (Four Ways of Scrolling with Cocos2D)
原版的:http://www.koboldtouch.com/display/IDCAR/Four+Ways+of+Scrolling+with+Cocos2D There are two class ...
- build path--use as source folder 应用
今天eclipse.当打算run随着main功能class时间,出现editor does not contain a main type该错误框. baidu了一下,迅速解决这个问题:原来这个cla ...
- 开源TinyXML 最简单的新手教程
TinyXML它是基于一个非常受欢迎的现在DOM型号XML解析器,简单易用且小巧玲珑,很适合存储简单数据.配置文件. 该项目属于开源项目,在sourceforge上边的链接是:http://sourc ...
- lol盒子重点内容
//AFN函数 - imageview载入网络图片而且获取图片,获取之后存储到手机 [image setImageWithURLRequest:[NSURLRequest requestWithU ...
- git checkout 命令详解(转)
在日常的git操作中,git checkout——检出,是我们的常用命令.最为常用的两种情形是创建分支和切换分支. 在下面的命令中,使用了一些简写,在这里说明一下: git st # git stat ...
- unity与ios交替
unity和ios的相互作用是更简单的.直接出口xcodeproject,这个大家都知道如何操作,如果需要二次开发ios码成unity,事实上,整合非常easy找到出口xcodeproject内iPh ...