Canvas绘图 (html5新增特性)
- Canvas
使用<canvas>对象,需要设置属性:width,height。指定绘图的区域大小。在canvas标签前后出现的信息将在不支持<canvas>元素的浏览器中显示出来。如下:
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
要在这块画布上绘图,需要取得绘图上下文。取得绘图上下文对象的引用需要调用getContext()方法并传入上下文的名字。传入“2d” 取得2D上下文对象。
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
<script type="text/javascript">
var drawing=document.getElementById("drawing");
if(drawing.getContext){ //检测获取绘图上下文对象的方法是否存在
var context=drawing.getContext("2d"); }
</script>
要导出<canvas>元素上绘制的图像,可使用toDataURL()方法。参数为图像的类型格式
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
<script type="text/javascript">
var drawing=document.getElementById("drawing");
if(drawing.getContext){
var imgURL=drawing.toDataURL("image/png");
var image=document.createElement("img");
image.src=imgURL;
document.body.appendChild(image); }
</script>
- 2D上下文
坐标开始于<canvas>元素的左上角,绘制简单的2D图形。
操作大多分为描边和填充两个操作,属性为:fillStyle(填充),strokeStyle(描边).
- 绘制矩形(相关的方法:fillRect(),strokeRect(),clearRect() 清除画布上的矩形区域)
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
<script type="text/javascript">
var drawing=document.getElementById("drawing");
if(drawing.getContext){
/*var imgURL=drawing.toDataURL("image/png");
var image=document.createElement("img");
image.src=imgURL;
document.body.appendChild(image);*/
var context=drawing.getContext("2d");
context.fillStyle="red";
context.fillRect(10,10,50,50);
context.fillStyle="rgba(0,0,255,0.5)";
context.fillRect(30,30,50,50); }
</script>
- 画布上绘制路径:首先调用beginPath()方法,表示要开始绘制新路径,然后调用方法: arc(),arcTo(),lineTo(),moveTo(),quadraticCurveTo(),rect(), 最后创建路径后选择:closePath()方法,fill(),stroke()。
绘制时钟:
<canvas id="drawing" width="400" height="400">a drawing of something</canvas>
<script type="text/javascript">
var drawing=document.getElementById("drawing");
if(drawing.getContext){
var context=drawing.getContext("2d");
context.beginPath();
//绘制外圆
context.arc(100,100,99,0,2*Math.PI,false);
//绘制内圆
context.moveTo(194,100);
context.arc(100,100,94,0,2*Math.PI,false);
//绘制分针
context.moveTo(100,100);
context.lineTo(100,15);
//绘制时针
context.moveTo(100,100);
context.lineTo(35,100);
//描边
context.stroke();
}
</script>
- 绘制文本:fillText()和strokeText() 四个参数:要绘制的文本字符,x坐标,y坐标,可选最大像素宽度。 属性:font(文本样式,大小,字体),textAlign(文本对齐方式),textBaseline(文本的基线).
context.font="bold 14px Arial";
context.textAlign="center";
context.textBaseline="middle";
context.fillText("12",100,20);
变换:rotate()围绕圆点旋转角度,scale()缩放一定比例,translate()平移,transform,setTransform。
- 绘制图像:把图像绘制到画布上,drawImage()方法。
var img=document.images[0];
context.drawImage(img,100,100);
- 阴影
shadowColor:阴影颜色。
shadowOffsetX:形状或路径x轴方向的阴影偏移量。
shadowOffsetX:形状或路径y轴方向的阴影偏移量。
shadowBlur:模糊像素数。
这些属性通过context对象来修改。在绘制之前设置完成,能自动产生阴影。
Canvas绘图 (html5新增特性)的更多相关文章
- HTML5新增特性
1. 语义化标签 2. 增强型表单 (1)新的表单输入类型 (2)新表单元素 (3)新表单属性 3. 视频和音频 4. Canvas绘图(图形.路径.文本.渐变.图像) 5. SVG绘图 (与Canv ...
- CSS3和HTML5新增特性及使用(保留方便查看)
CSS3 1.边框图片 border-image: url(test.png) 10/10px; outline:10px solid #ff0;outline-offset:15px;边框的边框, ...
- html5一些特性
html5可以理解为html+css+js 其目前可以解决:1.浏览器的兼容问题 2.统一web应用标准 3.解决文档结构定义不明确问题 4.解决web应用中的功能受限问题 5.是程序员编写的web应 ...
- 15. javacript高级程序设计-Canvas绘图
1. Canvas绘图 HTML5的<canvas>元素提供了一组JavaScript API,让我们可以动态的创建图形和图像.图形是在一个特定的上下文中创建的,而上下文对象目前有两种. ...
- HTML5 学习总结(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- HTML5 学习笔记(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- HTML5新增Canvas标签及对应属性、API详解(基础一)
知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签 ...
- HTML5自学笔记[ 11 ]canvas绘图基础1
html5新增<canvas>标签用于绘制图像,默认宽高是300*150,canvas的宽高需要在这里设置,在css中设置会有问题:设置的形状,如矩形,会等比缩放,而非设置的宽高. 在不支 ...
- HTML5新增核心工具——canvas
原文:HTML5新增核心工具--canvas Canvas元素称得上是HTML5的核心所在,它是一个依靠JavaScript绘制华丽图像的元素. Canvas由一个可绘制地区HTML代码中的属性定义决 ...
随机推荐
- 360sdk网游支付服务
网游支付服务 目录 1.流程介绍2.接口介绍2.1支付接口[客户端调用](必接)2.2支付结果通知接口–应用服务器提供接口, 由360服务器回调(必接)2.3订单核实接口– 服务器端接口, 应用服 ...
- windows安装AnyProxy 配合夜神模拟器抓包
AnyProxy是阿里巴巴基于 Node.js 开发的一款开源代理服务器.做为中间代理服务器,它可以收集所有经过它的http请求流量(包括https明文内容):它提供了友好的web界面,便于直观的查看 ...
- MAC下Xcode配置opencv(2017.3.29最新实践,亲测可行)(转)
本文原创,未经同意,谢绝转载!(转载请告知本人并且经过本人同意--By Pacific-hong) 本人小硕一枚,因为专业方向图像相关,所以用到opencv,然后网上MAC下Xcode配置opencv ...
- Linux下怎么创建和进入带有空格的文件夹
有时候需要创建带有空格的文件夹,虽然这不是一个好的习惯,但是偶尔会遇到.用的最多的是很多时候需要进入带有空格的文件夹,如"a b"是一个文件夹名. 创建:mkdir "a ...
- perl5
1.perl包加入环境 export PERL5LIB=/export/personal1/wanglh/.software/perl/lib:$PERL5LIB
- python网络编程之开启进程的方式
标签(空格分隔): 开启进程的方式 multiprocessing模块介绍: python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在pyth ...
- android通过命令行安装sdk
在linux下没有界面化的安装sdk方式,所以需要通过下载zip包或命令行安装 一.通过tools下的android安装 1.进入到android工具 cd $ANDROID_HOME/tools ...
- web前端开发浏览器兼容性处理大全
1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果di ...
- enlarge your dataset
列举常见的几种数据集增强方法: 1.flip 翻折(左右,上下) # NumPy.'img' = A single image. flip_1 = np.fliplr(img) # TensorFl ...
- Python __import__() 函数
Python OS 文件/目录方法 Python 面向对象 Python __import__() 函数 Python 内置函数 描述 __import__() 函数用于动态加载类和函数 . 如 ...