HTML 5 Canvas 绘制图形图像

港控/mmm° 2022-04-17 04:53 464阅读 0赞

目录

HTML5 Canvas

创建一个画布(Canvas)

JavaScript 绘制图像

颜色、样式和阴影

线条样式,矩形

路 径

转 换,文本

图像绘制,像素操作

合成,其 他


HTML5 Canvas

HTML5 标签定义图形,比如图表和其他图像,必须使用脚本来绘制图形。 是 HTML 5 中的新标签。

元素本身并没有绘制能力,它仅仅是图形的容器/画布,必须使用脚本(JavaScript)来完成实际的绘图任务。

getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性。 getContext(“2d”) 对象属性和方法,可用于在画布上绘制文本、线条、矩形、圆形等二维图像。

表格中的数字表示支持 元素的第一个浏览器版本号:




















元素 Chrome IE Firefox Safari opera
<canvas> 4.0 9.0 2.0 3.1 9.0

元素属于行内元素。

创建一个画布(Canvas)

一个画布容器 在网页中是一个矩形框, 默认情况下 元素没有边框和内容。

注意:canvas 的 width 与 height 属性的值不能带单位,如 100px、100% 都是错误的,只能是纯数字。

简单实例如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
  6. <title>Cavas 演示</title>
  7. </head>
  8. <body>
  9. <canvas id="myCanvas1" width="200" height="100" style="border:1px solid #000000;">
  10. 浏览器不支持 HTML5 canvas
  11. </canvas>
  12. <canvas id="myCanvas2" width="200" height="100" style="border:1px solid #f00;">
  13. 浏览器不支持 HTML5 canvas
  14. </canvas>
  15. </body>
  16. </html>

20181113133857545.png

标签通常需要指定一个 id 属性 (因为脚本中经常引用), width 和 height 属性定义的画布的大小,可以在 HTML 页面中使用多个 元素。

JavaScript 绘制图像

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
  6. <title>Cavas 演示</title>
  7. <!-- JQuery CDN-->
  8. <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
  9. <script type="text/javascript">
  10. $(function () {
  11. /**获取 cavas Dom 对象*/
  12. var canvasObj = document.getElementById("myCanvas");
  13. /**获取 context 对象,该对象提供了用于在画布上绘图的方法和属性
  14. * 2d 是目前支持的二维图像*/
  15. var ctx = canvasObj.getContext("2d");
  16. /**绘制一个红色的矩形*/
  17. ctx.fillStyle = "#FF0000";
  18. ctx.fillRect(0, 0, 150, 75);
  19. });
  20. </script>
  21. </head>
  22. <body>
  23. <canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
  24. 浏览器不支持 HTML5 canvas
  25. </canvas>
  26. </body>
  27. </html>

20181113135303121.png

设置 fillStyle 属性可以是 CSS 颜色,渐变,或图案,fillStyle 默认设置是#000000(黑色),后面会详细讲解。

fillRect(x,y,width,height) 方法绘制“被填充”的矩形,后面会详细讲解。

Canvas 坐标

canvas 是一个二维网格,canvas 的左上角坐标为 (0,0),如上fillRect (0,0,150,75) 意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。

颜色、样式和阴影
































属性 描述
fillStyle 设置或返回用于填充绘画的颜色、渐变或模式
strokeStyle 设置或返回用于笔触的颜色、渐变或模式
shadowColor 设置或返回用于阴影的颜色
shadowBlur 设置或返回用于阴影的模糊级别
shadowOffsetX 设置或返回阴影距形状的水平距离
shadowOffsetY 设置或返回阴影距形状的垂直距离























方法 描述
createLinearGradient() 创建线性渐变(用在画布内容上)
createPattern() 在指定的方向上重复指定的元素
createRadialGradient() 创建放射状/环形的渐变(用在画布内容上)
addColorStop() 规定渐变对象中的颜色和停止位置

线条样式,矩形

线条样式:
























属性 描述
lineCap 设置或返回线条的结束端点样式
lineJoin 设置或返回两条线相交时,所创建的拐角类型
lineWidth 设置或返回当前的线条宽度
miterLimit 设置或返回最大斜接长度

矩形:
























方法 描述
rect() 创建矩形。蚩尤后裔
fillRect() 绘制“被填充”的矩形
strokeRect() 绘制矩形(无填充)
clearRect() 在给定的矩形内清除指定的像素

路 径
























































方法 描述
fill() 填充当前绘图(路径)
stroke() 绘制已定义的路径
beginPath() 起始一条路径,或重置当前路径
moveTo() 把路径移动到画布中的指定点,不创建线条
closePath() 创建从当前点回到起始点的路径
lineTo() 添加一个新点,然后在画布中创建从该点到最后指定点的线条
clip() 从原始画布剪切任意形状和尺寸的区域
quadraticCurveTo() 创建二次贝塞尔曲线
bezierCurveTo() 创建三次方贝塞尔曲线
arc() 创建弧/曲线(用于创建圆形或部分圆)。蚩尤后裔
arcTo() 创建两切线之间的弧/曲线
isPointInPath() 如果指定的点位于当前路径中,则返回 true,否则返回 false

转 换,文本

转 换:




























方法 描述
scale() 缩放当前绘图至更大或更小
rotate() 旋转当前绘图
translate() 重新映射画布上的 (0,0) 位置
transform() 替换绘图的当前转换矩阵
setTransform() 将当前转换重置为单位矩阵。然后运行 transform()

文本:




















属性 描述
font 设置或返回文本内容的当前字体属性
textAlign 设置或返回文本内容的当前对齐方式
textBaseline 设置或返回在绘制文本时使用的当前文本基线



















方法 描述
fillText() 在画布上绘制“被填充的”文本。蚩尤后裔
strokeText() 在画布上绘制文本(无填充)
measureText() 返回包含指定文本宽度的对象

图像绘制,像素操作

图像绘制:












方法 描述
drawImage() 向画布上绘制图像、画布或视频。蚩尤后裔

像素操作:




















属性 描述
width 返回 ImageData 对象的宽度
height 返回 ImageData 对象的高度
data 返回一个对象,其包含指定的 ImageData 对象的图像数据



















方法 描述
createImageData() 创建新的、空白的 ImageData 对象
getImageData() 返回 ImageData 对象,该对象为画布上指定的矩形复制像素数据
putImageData() 把图像数据(从指定的 ImageData 对象)放回画布上

合成,其 他

合成:
















属性 描述
globalAlpha 设置或返回绘图的当前 alpha 或透明值
globalCompositeOperation 设置或返回新图像如何绘制到已有的图像上

其 他:




























方法 描述
save() 保存当前环境的状态
restore() 返回之前保存过的路径状态和属性
createEvent()  
getContext()  
toDataURL()  

发表评论

表情:
评论列表 (有 0 条评论,464人围观)

还没有评论,来说两句吧...

相关阅读