美文网首页
HTML5画布

HTML5画布

作者: 梨啊梨 | 来源:发表于2017-12-15 22:04 被阅读0次

1. 随便创建一个画布

2. 绘制图形

3. 绘制直线

4. 绘制矩形

两种方法:

① context.fillStyle="指定一个颜色"

再用context.fillRect(x,y,width,height)填充颜色,绘制出矩形

② context.strokeStyle="设置轮廓颜色"

再用context.strokeRect(x,y,width,height),绘制出轮廓

5. 绘制圆形

6. 清空画布

context.clearRect(x,y,width,height)


图形的变换

1. 保存与恢复Canvas状态

context.save():暂时将当前的状态保存在堆中

context.restore():将上一个保存的状态从堆中再次取出

2. 移动坐标空间

context.translate(x,y); //使坐标在默认左上角的x y发生变化

3. 旋转坐标空间

context.rotate(angle)

他只有一个参数,angle即旋转的角度,旋转角度以顺时针方向为正方向,以弧度为单位,旋转中心是canvas的原点

4. 缩放图形

context.scale(x,y)

x,y必须接受参数,x为在x轴的缩放因子,y在y轴上的缩放因子,他们的值必须是正值


颜色和样式选项

1. lineWidth:设置线条的粗细,他的值必须为正,默认为1.0

2. lineCap:设置线段端点样式,他有三个值,butt平头(默认值) round圆头 square方头

3.lineJoin:设置两条线段连接处的样式,他有三个值round  bevel miter(默认值)

4. miterLimit:当设置lineJoine为miter时,如果两条线发生相交时,可以设置该属性来设置长度的上限

绘制线性渐变

首先ctx.createLinearGradient()创建对象

context.createLinearGradient(x1,y1,x2,y2);

x1 y1为渐变的起点  x2y2为渐变的终点。

接着,addColorStop(position,color)来上色

position为渐变色中色标的相对位置,必须是0~1的一个浮点值,0起点1终点

绘制径向渐变

首先ctx.createRadialrGradient()创建对象

context.createRadialrGradient(x1,y1,r1,x2,y2,r2)

x1y1原点,半径为r1的圆,再定义一个圆x2y2原点,半径为r2

接着,addColorStop方法上色

绘制图案

填充图案使用,createPattern方法

首先context.createPattern(image,type),然后再赋予其fillStyle或者strokeStyle属性

image是引用的img对象或者另一个Canvas对象

type引用的是平铺类型:

repeat:同时沿x与y轴平铺

repeat-x:沿x轴平铺

repeat-y:沿y轴平铺

no-repeat:不平铺

设置图形的透明度

使用rgba(R,G,B,A)

A:透明程度,0~1的浮点值,0.0完全透明,1.0完全不透明

创建阴影

context.shadowOffsetX=float     // 正值向右,负值向左,阴影的水平偏移

context.shadowOffsetY=float     //正值向下,负值向上,阴影的垂直偏移

context.shadowBlur=float          //阴影羽化的程度

context.shadowColor=color      //阴影的颜色


绘制文字

1. 绘制填充文字

绘制文字使用的是fillText方法和strokeText方法,分别是以填充方式和轮廓方式绘制文字。

context.fillText(text,x,y,maxWidth)

text:文字

maxWidth:可选参数,文字的最大宽度

2. 文字的相关属性

font:用于指定正在绘制的文字的样式,默认字体样式font(10px sans-serif)

textAlign:用于正在绘制的文字的对齐方式,他有一下属性:

 start:如果文字从左到右排版,则左对齐,反之右对齐(默认值)

  end:如果文字从右到左排版,则左对齐,反之右对齐

left:左对齐     right:右对齐   center:居中对齐

textBaseline:用于指定正在绘制的文字的基线,有6种属性:

alphabetic:文本基线为通常字母基线

top:文本基线与字元正方向空间顶部对齐

hanging:悬挂的基线

middle:字元正方形空间的中间位置

ideographic:表意字基线

bottom:字元正方形空间底部的边界框对齐

3. 绘制轮廓文字

主要用strokeText方法

context.strokeText(text,x,y,maxWidth)

4. 测量文字宽度

使用measureText方法可以测量当前绘制文字中指定文字的宽度,该方法会返回一个TextMetrics对象,在用width属性得到指定文字的总宽度。

metrics=context.measureText(text)

alert(metrics.width);


操作与使用图像

 1. 项canvas中引入图像,需要经过两个步骤:①确定图像的来源     ②使用drawImage方法绘制到Canvas中

使用脚本创建Image对象

var image=new Image();

img.src="图像的地址"

或者

var image=new Image()

img.onload=function(){}

img.src="图像的地址"

然后使用drawImage方法绘制到Canvas中,他有三个方法:

①context.drawImage(image,x,y) //x y 要绘制到的起始位置

②context.drawImage(image,x,y,width,height)

③context.drawImage(image,sx,sy,sWidth,sHeight,dx,dy,dWidth,dHeight)

sx  sy:源图像 被切割区域的起始坐标

swidth sHeight:源图像被切割下来的宽度和高度

dx dy:被切割下来的源图像要放置到目标Canvas的起始坐标

dWidth dHeight:被切割下来的源图像的宽度和高度

相关文章

  • HTML5 Canvas 完整测试 - canvas 标签

    在 html5 文档内创建 canvas 画布: “画布”(canvas) 是 html5 中独有的元素,通过它可...

  • Canvas2D画线和面

    我们知道canvas是画布,今天我们就来画布上面画线和面。 1.Html中的画布 canvas是HTML5中的元素...

  • 初识canvas(画布)

    canvas(画布) 1、 HTML5提供的新元素2、 Canvas在HTML页面提供画布的功能,可以在页面中绘制...

  • HTML画布——canvas

    HTML5画布——canvas HTML5元素用于图形的绘制,通过脚本 (通常是 JavaScript )来完成....

  • 教你使用Canvas处理图片

    Canvas,中文译为“画布”,HTML5中新增了 元素,可以结合JavaScript动态地在画布中绘制图形。 今...

  • HTML5画布(CANVAS)速查简表

    HTML5画布(CANVAS)元素 浏览器不支持画布(canvas)时的备案 2d context Webgl c...

  • (二)Fabric: Part 1

    原文链接使用 Fabric.js可以让你轻而易举的使用HTML5中的canvas功能。它为画布提供了原生画布所缺少...

  • createJS--learn

    createJS主要包含四个类库 EaselJS:简化处理HTML5画布, 显示列表的顶级容器Stage来处理画布...

  • Canvas 1

    Canvas:画布,在HTML5中默认是一个300*150的inline-block。设定画布的宽和高不能使用CS...

  • canvas基础知识入门

    canvas是浏览器的画布。 通过html5的canvas标签,可以创建一个画布,通常会绑定一个id属性,为了方便...

网友评论

      本文标题:HTML5画布

      本文链接:https://www.haomeiwen.com/subject/ryrdwxtx.html