HTML5 Canvas一些常用的操作
粗略的Canvas API
1、 context
- var context = canvas.getContext('2d');
2、Canvas state
- context.save();//将当前状态压入状态栈中,保存当前的状态
- context.restore();//将状态栈中的栈顶元素出栈,恢复上次的状态
3、Line styles
- context.lineWidth[= value] ;//线宽
- context.lineCap[= value]; //线的开始和结束部分的形状(butt:没有,round:圆,square:方)
- context.lineJoin[= value]; // 线相交部分的形状(bevel:尖角,round:圆角,miter:按照一个既定值来设置)
- context.miterLimit[= value]; //设置context.lineJoin为miter时的既定值。
- context.setLineDash()
- context.getLineDash()
- context.lineDashOffset
4、Text styles
- context.font [= value];//字体,和CSS写法一致
- context.textAlign [= value];// 水平对齐(start,end,left,right,middle)
- context.textBaseLine [=value];//设置竖直方向的基准线 (取值:top,hanging,middle,alphabetic,ideographic,bottom)
5、Building Path
- context.moveTo(x,y);
- context.closePath();
- context.lineTo(x,y);
- context.quadraticCurveTo(cpx,cpy,x,y);//2次贝塞尔曲线
- context.bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y);//3次贝塞尔曲线
- context.arcTo(x1,y1,x2,y2,radius);//画一段圆弧
- context.arc(x,y,radius,startAngle,endAngle);//画一段圆弧
- context.rect(x,y,w,h);//画一个矩形
6、Transformations
- context.scale(x,y);//缩放
- context.rotate(angle);//旋转
- context.translate(x,y);//平移
- context.transform(a,b,c,d,e,f);
- context.setTransform(a,b,c,d,e,f);
7、Fill and stroke styles
- context.fillStyle [= value];//填充
- context.strokeStyle [= value];//描边
- 填充和描边的值可以为:CSS color,CancasGradient(canvas的渐变效果),CanvasPattern
- var gradient = context.createLinearGradient(x0,y0,x1,y1);//线性渐变
- var gradient = context.createRadialGradient(x0,y0,r0,x1,y1,r1);//放射性渐变
- gradient.addColorStop(offset,color);//设置每个阶段的过渡颜色(offset为0.0~1.0之间)
- var pattern =context.createPattern(image,repetition);//设置背景图以及重复效果,image的值可以为HTMLImageElement,HTMLCanvasElement,HTMLVideoElement。repetition的值为:repeat,repeat-x,repeat-y,no-repeat
8、Drawing rectangles to the canvas
- context.clearRect(x,y,w,h);//清楚某个矩形区域内的所有图形
- context.fillRect(x,y,w,h);//填充某个矩形区域
- context.strokeRect(x,y,w,h);//对某个矩形区域进行描边
9、Drawing text to the canvas
- context.fillText(text,x,y,[,maxWidth]);//填充文字,参数依次为:要填写的值,起始x坐标,起始y坐标,最大宽度(可选))
- context.strokeText(text,x,y,[,maxWidth]);//对字体进行描边
- var metrics = context.measureText(text);
- metrics.width;
10、Drawing paths to the canvas
- context.beginPath();
- context.fill();
- context.stroke();
- context.drawFocusIfNeed(element);
- context.clip();
- context.isPoingInPath(x,y);
11、Dawing images to the canvas
- context.drawImage(image,dx,dy);
- context.drawImage(image,dx,dy,dw,dh);
- context.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);//其中s开头的属性表示为图像源的属性,d开头的属性表示在canvas上的属性。
- image 的值为 HTMLImageElement,HTMLCanvasElement,HTMLVideoElement
参考资料:http://www.w3.org/TR/2dcontext/
HTML5 Canvas一些常用的操作的更多相关文章
- [js高手之路] html5 canvas系列教程 - 图片操作(drawImage,clip,createPattern)
接着上文[js高手之路] html5 canvas系列教程 - 文本样式(strokeText,fillText,measureText,textAlign,textBaseline)继续,本文介绍的 ...
- [js高手之路] html5 canvas系列教程 - 像素操作(反色,黑白,亮度,复古,蒙版,透明)
接着上文[js高手之路] html5 canvas系列教程 - 状态详解(save与restore),相信大家都应该玩过美颜功能,而我们今天要讲的就是canvas强大的像素处理能力,通过像素处理,实现 ...
- HTML5 Canvas ( 图形的像素操作 ) getImageData, putImageData, ImgData.data
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 开源HTML5 Canvas游戏Runtime发布
Cantk-Runtime是通用的HTML5 Canvas 2D游戏引擎运行库,让HTML5游戏的性能飞起来.Cantk-Runtime以PhoneGap插件的方式提供,从此结束PhoneGap低性能 ...
- [js高手之路] html5 canvas动画教程 - 实时获取鼠标的当前坐标
有了前面的canvas基础之后,现在开始就精彩了,后面写的canvas教程都是属于综合应用,前面已经写了常用的canvas基础知识,参考链接如下: [js高手之路] html5 canvas系列教程 ...
- [js高手之路] html5 canvas系列教程 - 状态详解(save与restore)
本文内容与路径([js高手之路] html5 canvas系列教程 - 开始路径beginPath与关闭路径closePath详解)是canvas中比较重要的概念.掌握理解他们是做出复杂canvas动 ...
- [js高手之路] html5 canvas系列教程 - 线形渐变,径向渐变与阴影设置
接着上文[js高手之路] html5 canvas系列教程 - 像素操作(反色,黑白,亮度,复古,蒙版,透明)继续. 一.线形渐变 线形渐变指的是一条直线上发生的渐变. 用法: var linear ...
- html5 canvas常用api总结(一)
1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...
- html5 canvas画图之图形随拖动而复制(有操作指示)
学习html5 canvas,写了一个小练习来加深理解,可以实现图形随拖动而复制. <!DOCTYPE html> <html> <head> <meta c ...
随机推荐
- category用法
1.今天在复习之前的category的时候,遇到一个这样子的问题.查来一下,原来苹果的官方文档中有说明,苹果时不提倡我们在类别中重写原文件的内容,如果要重写,就继承他,然后重写,但是在项目中,有很多前 ...
- C# MD5摘要算法、哈希算法
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法) MD5算法具有以下特点: 1.压缩 ...
- Windows Phone 六、JSON序列化
JSON序列化 public class Person { public int Id { get; set; } public string Name { get; set; } public in ...
- Hdu 1214 圆桌会议
圆桌会议 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 论文阅读(Weilin Huang——【TIP2016】Text-Attentional Convolutional Neural Network for Scene Text Detection)
Weilin Huang--[TIP2015]Text-Attentional Convolutional Neural Network for Scene Text Detection) 目录 作者 ...
- h5视频上传之前端视频压缩研究
今天领导接到一个h5上传手机视频的需求,主要是要看用户在这个视频中有没有完成某个任务,比如投篮进了几个球. 但是由于手机拍摄的视频文件大小有点大,直接上传的话,用户流量顶不住,而且特别耗时,在这样的情 ...
- HTML5学习小结
HTML5是用于取代1999年所制定的 HTML4.01和XHTML1.0标准的HTML标准版本.HTML5的第一份正式草案已于2008年1月公布:2012年12月,规范已经正式定稿.W3C计划在20 ...
- 关于ThinkPHP3.2框架接收不到json数据的解决办法
原因分析: 在tp框架中,我们经常使用的 I 方法是加过验证和默认的函数过滤的.所以我们接收的值当我们json_decode的时候就会出现空的字段 那么我们是不是又会像网上说的不用 I 方法用 $_ ...
- [课程设计]Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案)
Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统W ...
- Python爬网获取全国各地律师电话号
[本文出自天外归云的博客园] 从64365网站获取全国各地律师电话号,用到了python的lxml库进行对html页面内容的解析,对于xpath的获取和正确性校验,需要在火狐浏览器安装firebug和 ...