美文网首页
HTML5 canvas画布

HTML5 canvas画布

作者: 飞鱼_JS | 来源:发表于2017-06-01 19:47 被阅读0次

canvas用途

  • 游戏 小游戏
  • 图表 报表 如 Charts插件
  • 炫酷效果 banner
  • 模拟器、图形编辑器 等

兼容性

IE9以上和其他浏览器

canvas 标签

属性

  • width
  • height

方法

  • getContext() 参数 2d/webgl

注意

css设置的宽高跟width/height设置的宽高 不同

Context环境

通过 getContext方法获取绘图环境(绘图上下文)(对象)
绘制图形通过该对象提供的方法/属性

基本绘图

路径

  • moveTo() 起始位置
  • lineTo() 直线 ,如果没有moveTo() 第一个lineTo()替代 moveTo()

路径的开始和关闭

  • beginPath() 开启路径
  • closePath() 关闭路径 结束当前的路径,自动闭合
  • 注意: 复杂的图形,一定要开启和关闭路径

描边 stroke()

  • stroke() 方法
  • strokeStyle 设置描边颜色
  • lineWidth 设置描边的粗细

填充

  • fill() 填充
  • fillStyle 设置填充颜色

快速矩形工具

  • rect(x, y, width, height) 绘制矩形路径
  • strokeRect(x, y, width, height) 描边矩形
  • fillRect(x,y,width,height) 填充矩形
  • clearRect(x,y,w,h) 清除矩形 (矩形范围内的内容会被擦除)

圆形(圆弧)

  • arc(x,y,r,start, end, wise) 绘制圆弧
  • start/end是起始位置 单位是 弧度 , 360角度 = 2PI, 180角度 = PI
  • 最后一个参数 顺时针(false)/逆时针(true) 默认false

内容

文字方法

  • strokeText(text, x, y) 描边写字
  • fillText(text, x, y) 填充写字
  • measureText(text) 返回对象 包换文本的宽度
  • font 属性 设置 大小、字体 如 cxt.fon="100px MicrosoftYaHei";
  • textAlign 属性 水平对齐方式 start(默认)/end/center/left/right
  • textBaseline 属性 垂直对齐方式 alphabetic(默认)/top/bottom/middke/hanging/ideographic

绘制图片(插入图片)

插入图片

drawImage(img, x, y)

  • img image的dom元素
  • x,y 插入到 画布的位置 坐标

插入图片并改变大小

drawImage(img, x, y, width, height)

插入裁剪后的图片

drawImage(img, sx,sy,swidth,sheight, x, y, width, height)

  • sx/sy: 图片上开始裁剪的位置
  • swidth/sheight : 裁剪图片的大小

阴影

  • shadowColor 阴影颜色
  • shadowBlur 阴影的模糊值
  • shadowOffsetX 阴影的左偏移量
  • shadowOffsetY 阴影的右偏移量

渐变

线性渐变

var grd = cxt.createLinearGradien(x, y, x1, y1);
//参数:x,y起始坐标,x1,y1结束坐标
例如:
//创建线性渐变的对象,
var grd=ctx.createLinearGradient(0,0,170,0);
grd.addColorStop(0,"black"); //添加一个渐变颜色,第一个参数介于 0.0 与 1.0 之间的值,表示渐变中开始与结束之间的位置。
grd.addColorStop(1,"white"); //添加一个渐变颜色
ctx.fillStyle =grd; //关键点,把渐变设置到 填充的样式

径向渐变

  • createRadiaGradient(x1, y1, r1, x2, y2, r2)
  • addColorStop()

把背景图片作为填充

  • createPattern(imgDom, repeate)
  • 第二个参数 repeate/ repeat-x / repeat-y / no-repeat

变换

缩放

  • sacle(x, y)

位移

  • translate(x, y)

旋转

  • rotate(angle)

环境的保存和恢复

  • save()
  • restore()

设置透明

  • globalAlpha = number 设置不透明度
  • 全局设置是对整个画布(绘图环境) 进行设置

限定绘图区域

  • clip()

输出base64编码

  • canvas.toDataURL(type, encoder)
  • type为mime类型 image/jpeg image/gif image/png image/webp

画布渲染画布

把一个画布以图片的形式用 drawImage() 插入到另一个画布
这是一种canvas的优化手段

设置线条

  • lineCap 属性 设置线条两端的形状 butt/round/square
  • lineJoin 属性 设置线条夹角 miter/bevel/round
  • miterLimit 属性 设置夹角斜角的最大长度 一般默认 10

相关文章

  • HTML5 Canvas 完整测试 - canvas 标签

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

  • Canvas2D画线和面

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

  • 初识canvas(画布)

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

  • HTML5画布(CANVAS)速查简表

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

  • web前端源码笔记_canvas【爱创课堂】

    一、canvas canvas是HTML5新增的标签用于提供“画布” 可以通过canvas元素获取对应的“上下文”...

  • canvas基于语法(一)

    1.什么是Canvas canvas 是 HTML5 提供的一个用于展示绘图效果的标签.canvas 原意画布, ...

  • 03、HTML5-Canvas(画布)

    一、什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像 画布是...

  • 什么是 Canvas?

    什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一...

  • 03、HTML5-Canvas(画布)

    一、什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像 画布是...

  • canvas基础知识入门

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

网友评论

      本文标题:HTML5 canvas画布

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