粗略的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一些常用的操作的更多相关文章

  1. [js高手之路] html5 canvas系列教程 - 图片操作(drawImage,clip,createPattern)

    接着上文[js高手之路] html5 canvas系列教程 - 文本样式(strokeText,fillText,measureText,textAlign,textBaseline)继续,本文介绍的 ...

  2. [js高手之路] html5 canvas系列教程 - 像素操作(反色,黑白,亮度,复古,蒙版,透明)

    接着上文[js高手之路] html5 canvas系列教程 - 状态详解(save与restore),相信大家都应该玩过美颜功能,而我们今天要讲的就是canvas强大的像素处理能力,通过像素处理,实现 ...

  3. HTML5 Canvas ( 图形的像素操作 ) getImageData, putImageData, ImgData.data

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 开源HTML5 Canvas游戏Runtime发布

    Cantk-Runtime是通用的HTML5 Canvas 2D游戏引擎运行库,让HTML5游戏的性能飞起来.Cantk-Runtime以PhoneGap插件的方式提供,从此结束PhoneGap低性能 ...

  5. [js高手之路] html5 canvas动画教程 - 实时获取鼠标的当前坐标

    有了前面的canvas基础之后,现在开始就精彩了,后面写的canvas教程都是属于综合应用,前面已经写了常用的canvas基础知识,参考链接如下: [js高手之路] html5 canvas系列教程 ...

  6. [js高手之路] html5 canvas系列教程 - 状态详解(save与restore)

    本文内容与路径([js高手之路] html5 canvas系列教程 - 开始路径beginPath与关闭路径closePath详解)是canvas中比较重要的概念.掌握理解他们是做出复杂canvas动 ...

  7. [js高手之路] html5 canvas系列教程 - 线形渐变,径向渐变与阴影设置

    接着上文[js高手之路] html5 canvas系列教程 - 像素操作(反色,黑白,亮度,复古,蒙版,透明)继续. 一.线形渐变 线形渐变指的是一条直线上发生的渐变. 用法: var linear ...

  8. html5 canvas常用api总结(一)

    1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...

  9. html5 canvas画图之图形随拖动而复制(有操作指示)

    学习html5 canvas,写了一个小练习来加深理解,可以实现图形随拖动而复制. <!DOCTYPE html> <html> <head> <meta c ...

随机推荐

  1. 论文阅读(Weilin Huang——【TIP2016】Text-Attentional Convolutional Neural Network for Scene Text Detection)

    Weilin Huang--[TIP2015]Text-Attentional Convolutional Neural Network for Scene Text Detection) 目录 作者 ...

  2. JAVA反射参数传递

    引用:http://fish2700.blog.163.com/blog/static/130713192009103035723281/ 使用Method反射调用函数时,我们通常会遇到以下几种情况: ...

  3. Linux主机规划

    当你想装linux操作系统的时候,一定要知道你的用途,不同的用途就要规划不同的装机方式. 首先要知道一些概念: 挂载:利用一个目录当成进入点,将磁盘分区的数据放置在该目录下. 磁盘第一个扇区记录的信息 ...

  4. linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

  5. Win7+Eclipse+Hadoop2.6.4开发环境搭建

    Hadoop开发环境搭建 感谢参考网站:http://www.cnblogs.com/huligong1234/p/4137133.html 一.软件准备 JDK:jdk-7u80-windows-x ...

  6. (二)sql入门 管理数据库对象

    在数据库里,有各种各样的对象,除了最常见的表之外,还有诸如视图.索引等数据库对象. 这些对象,在数据库里需要有人来管理,那么谁来管理呢?当然是数据库的使用者了.每个使用者相对于数据库里有一片区域,称为 ...

  7. 今天无意发现jquery的一个以前的误导

    本文提供即刻提升你的脚本性能的十个步骤.不用担心,这并不是什么高深的技巧.人人皆可运用!这些技巧包括: 使用最新版本 合并.最小化脚本 用for替代each 用ID替代class选择器 给选择器指定前 ...

  8. Oracle Partition By 的使用

    1.概述 Parttion by 关键字是Oracle中分析性函数的一部分,它和聚合函数不同的地方在于它能够返回一个分组中的多条记录,儿聚合函数一般只有一条反映统计值的结果. 2.使用方式 场景:查询 ...

  9. mssql数据库添加,修改,删除字段

    通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数 增加字段: alter table [表名] add 字段名 smalli ...

  10. 初始angular框架(2)

    看文档看不懂吧  那就应该看看点例子  看什么例子呢  看看视频教程  一般老师会把一些重要的地方着重讲解的  不懂就反复的看