首页 > js学习 > js基础知识 > html5中的canvas绘图属性
2017
08-21

html5中的canvas绘图属性

<canvas>标签是html5新增的专门用来绘制图像的元素,通过canvas技术可以在web中绘制各种图形。

canvas元素本身是一块无色透明的区域,只是一个容器,我们通过javascript脚本在区域上绘制图形。

一、添加canvas元素

<canvas id="myCanvas" width="300" height="300">

您的浏览器不支持canvas元素,请更新或更换您的浏览器

</canvas>

元素的宽和高未指定则默认为300,应该在标签内指定宽和高,在css中指定宽和高的话会产生一些错误的行为。当这两个值有任何一个改变时,在该画布上已经完成的任何绘图都会被擦掉。

二、通过canvas元素的getContext方法来创建Context对象,以获取允许进行绘制的2D环境。

var c=document.getElementById('myCanvas');

var context=c.getContext('2d');

三、在对象context上设置并且绘制图形

CanvasRenderingContext2D 对象的属性:

fillStyle 属性,用来填充路径的当前的颜色、模式或渐变。这个属性可以设置为一个字符串或者一个 CanvasGradient 对象 或 CanvasPattern 对象。当设置为一个字符串时,它被解析为一个 CSS 颜色值并且用来进行实心填充。当设置为一个 CanvasGradient 或 CanvasPattern 对象,通过使用指定的渐变或模式来完成填充。

font 属性,用来设置文本绘制时的文本的样式,大小和字体名称,格式为:[是否倾斜|是否加粗|是否转小型大写] 字体大小 字体名称

italic 表示斜体;normal 表示正常、bold 粗体、bolder 更粗的字体、lighter 轻细的字体、100 ~ 900 之间的数字 600 及之后是加粗,之前不加粗

globalAlpha 属性,指定在画布上绘制的内容的不透明度。这个值的范围在 0.0(完全透明)和 1.0(完全不透明)之间。默认值为 1.0。

globalCompositeOperation 属性,指定颜色如何与画布上已有的颜色组合(合成)。这些值中的 "source" 一词,指的是将要绘制到画布上的颜色,而 "destination" 指的是画布上已经存在的颜色。默认值是 "source-over"。

"copy" 只绘制新图形,删除其他所有内容。

"darker" 在图形重叠的地方,颜色由两个颜色值相减后决定。

"destination-atop" 已有的内容只有在它和新的图形重叠的地方保留。新图形绘制于内容之后。

"destination-in" 在新图形以及已有画布重叠的地方,已有内容都保留。所有其他内容成为透明的。

"destination-out" 在已有内容和新图形不重叠的地方,已有内容保留。所有其他内容成为透明。

"destination-over" 新图形绘制于已有内容的后面。

"lighter" 在图形重叠的地方,颜色由两种颜色值的加值来决定。

"source-atop" 只有在新图形和已有内容重叠的地方,才绘制新图形。

"source-in" 在新图形以及已有内容重叠的地方,新图形才绘制。所有其他内容成为透明。

"source-out" 只有在和已有图形不重叠的地方,才绘制新图形。

"source-over" 新图形绘制于已有图形的顶部。这是默认的行为。

"xor" 在重叠和正常绘制的其他地方,图形都成为透明的。

lineCap 属性,指定线条的末端如何绘制。合法的值是 "butt"、"round" 和 "square"。默认值是 "butt"。

"butt" 这个默认值指定了线段应该没有线帽。线条的末点是平直的而且和线条的方向正交,这条线段在其端点之外没有扩展。

"round" 这个值指定了线段应该带有一个半圆形的线帽,半圆的直径等于线段的宽度,并且线段在端点之外扩展了线段宽度的一半。

"square" 这个值表示线段应该带有一个矩形线帽。这个值和 "butt" 一样,但是线段扩展了自己的宽度的一半。

lineJoin 属性,指定两条线条如何连接。合法的值是 "round"、"bevel" 和 "miter"。默认值是 "miter"。

"miter",说明了两条线段的外边缘一直扩展到它们相交。当两条线段以一个锐角相交,斜角连接可能变得很长。miterLimit 属性为一个斜面的长度设置了上限。超过这一限制,斜面就变成斜角了。

"round" 说明定点的外边缘应该和一个填充的弧接合,这个弧的直径等于线段的宽度。

"bevel" 值说明顶点的外边缘应该和一个填充的三角形相交。

lineWidth 属性,指定了画笔(绘制线条)操作的线条宽度。默认值是 1.0,并且这个属性必须大于 0.0。较宽的线条在路径上居中,每边有线条宽的一半。

miterLimit 属性,当宽线条使用设置为 "miter" 的 lineJoin 属性绘制并且两条线段以锐角相交的时候,所得的斜面可能相当长。当斜面太长,就会变得不协调。miterLimit 属性为斜面的长度设置一个上限。这个属性表示斜面长度和线条长度的比值。默认是 10,意味着一个斜面的长度不应该超过线条宽度的 10 倍。如果斜面达到这个长度,它就变成斜角了。当 lineJoin 为 "round" 或 "bevel" 的时候,这个属性无效。

shadowBlur 属性,指定羽化阴影的程度。默认值是 0。阴影效果得到 safari 的支持,但是并没有得到 FireFox 1.5 或 Opera 9 的支持。

shadowColor 属性,把阴影的颜色指定为一个 CSS 字符串或 Web 样式字符串,并且可以包含一个 alpha 部分来表示透明度。默认值是 black。阴影效果得到 Safari 的支持,但是并没有得到 FireFox 1.5 或 Opera 9 的支持。

shadowOffsetX, shadowOffsetY 属性,指定阴影的水平偏移和垂直偏移。较大的值使得阴影化的对象似乎漂浮在背景的较高位置上。默认值是 0。阴影效果得到 Safari 的支持,但是并没有得到 FireFox 1.5 或 Opera 9 的支持。

strokeStyle 属性,指定了用于画笔(绘制)路径的颜色、模式和渐变。这个属性可能是一个字符串,或者一个 CanvasGradient 对象 或 CanvasPattern 对象。如果是一个字符串,它被解析为一个 CSS 颜色值,并且画笔用所得的实色来绘制。如果这个属性的值是一个 CanvasGradient 对象或 CanvasPattern 对象,画笔使用这个渐变或模式来实现。

textAlign 属性,设置文本绘制时的文本对齐方式,可选值包括start、end、left、center、right

start表示如果文本是从左到右则左对齐,从右到左则右对齐

end表示如果文本是从左到右则右对齐,从右到左则左对齐

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。