- 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代码中的属性定义决 ...
随机推荐
-
ASP.NET MVC的过滤器
APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理.这时候就用到了过滤器. MVC支持的过滤器 ...
-
HDU 2289 CUP 二分
Cup Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
-
Android IOS WebRTC 音视频开发总结(四九)-- ffmpeg介绍
本文主要介绍ffmpeg,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,个人微信公众号blacker,更多详见www.rtc.help 说明: ps1:如果直接从webrtc开始学 ...
-
浏览器输入URL加载的全过程都发生了什么事情,你知道?
什么是URL: 统一资源定位符(URL,英文 Uniform / Universal Reaource Locator 的缩写) 标准的URL由服务类型(协议).存放资源的主机域名(可以是域名或者ip ...
-
Java基础 变量的作用域
变量的作用域: 1. Java用一对大括号作为语句块的范围,称为作用域. 2.作用域中的变量不能重复定义. 3.离开作用域,变量所分配的内存空间将被JVM回收. public void name(){ ...
-
cmd命令入门
第一类: 介绍原生的DOS 首先在cmd命令输入help,看到如下图的结果,这里展示的原生的DOS命令. 这里列出了一些命令,可以自己试试的玩.一般看到一个命令后,如果没有说明文档,你就尝试的在其命令 ...
-
windows2012系统IE浏览器无法打开加载flashplayer内容
添加角色和功能,用户界面和基础结构,桌面体检,安装完重启电脑
-
jekins job configure找不到remote trigger(script)
今天想测试一下,remote的方式启动一个job,但是在“构建触发器”一栏根本找不到remote trigger,很惊讶的是在网上所有的doc或者demo里都是有这个选项的. 最后,终于找到了原因: ...
-
L1-008 求整数段和
给定两个整数A和B,输出从A到B的所有整数以及这些数的和. 输入格式: 输入在一行中给出2个整数A和B,其中−,其间以空格分隔. 输出格式: 首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字 ...
-
Byedance AI Camp-笔试题目
最小m段和问题:给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连续排列.如何分割才能使这m段子序列的和的最大值达到最小? Input 第一行输入一个整数t,代表有t组测试 ...