Canvas绘图  Brush - 图1 Brush

Canvas绘图  Brush - 图2

介绍

一款为简化小程序里canvas画图操作而创建的工具库。Github 地址

功能

  • 基本上将小程序中canvas相关的api都封装了一层,方便开发者链式调用。

  • canvas相关api中传的宽高、字体大小等参数直接传设计稿系数即可,不需要自己再做转换。

  • 常用功能,如:圆形图,圆角图等操作都进行了封装,提供接口调用。

安装

  1. $ npm install @anka-dev/brush --save

在小程序中使用

  • 如果是第一次在小程序中使用 npm 包,那么先需要 npm init,然后再按小程序官网的流程操作一遍,点我去查看小程序中 npm 教程

  • 小程序中 npm 构建之后在对应需要使用小程序 canvas 功能的 js 页面中在 page({}) 前引入,const Brush = require('@anka-dev/brush') 即可。

  • 然后在需要用到 canvas 中的某些功能时直接使用 const brush = new Brush(canvasId) 构造函数中传入的是 canvas 的 id,如果在组件中使用需要将 this 传入 const brush = new Brush(canvasId, this)

主要API

  • 绘制图像到画布。

    • API
  1. brush.drawImage(string imageResource, number dx, number dy, number dWidth, number dHeight, number sx, number sy, number sWidth, number sHeight)

使用方式完全和小程序不同之处必须将每个参数都传入,不可以省略参数(9个参数都需要传入)

  • 参数说明

    • 点我,传入的参数不需要经过 rpxpx 转换
  • 示例代码
  1. const Brush = require('@anka-dev/brush')
  2. const brush = new Brush(canvasId)
  3. brush.drawImage(imgUrl, 0, 0, img.width, img.height, 0, 0, 750, 1221).draw()
  • 绘制圆形图片到画布。

    • API
  1. brush.drawRoundImage('数组1', '数组2')

使用方式完全和小程序不同之处必须将每个参数都传入,不可以省略参数(9个参数都需要传入)

  • 参数说明

  • 示例代码
  1. const Brush = require('@anka-dev/brush')
  2. const brush = new Brush(canvasId)
  3. brush.drawRoundImage(
  4. ['圆心x轴的坐标', '圆心y坐标', '半径长度', '开始角度', '结束角度', '弧度的方向是否是逆时针'],
  5. ['图片url', '图像的左上角在目标canvas上x轴的位置', '图像的左上角在目标canvas上y轴的位置', '绘制图像的宽度', '绘制图像的高度', '图片在canvas上显示的x坐标', '图片在canvas上显示的y坐标', '图片在canvas上显示的宽', '图片在canvas上显示的高']).draw()
  • 绘制圆角矩形路径。

    • API
  1. brush.drawRoundRect(X, Y, width, height, round)
  • 参数说明

    • X为圆角矩形在canvas上的距离左上角x的坐标值
    • Y为圆角矩形在canvas上的距离左上角y的坐标值
    • width为圆角矩形在canvas上的宽
    • height为圆角矩形在canvas上的高
    • round为圆角矩形的圆角,默认值为0
  • 示例代码
  1. const Brush = require('@anka-dev/brush')
  2. const brush = new Brush(canvasId)
  3. brush.drawRoundRect(220, 220, 236, 250).draw()
  • 绘制矩形圆角图片到画布。

    • API
  1. brush.drawRoundRectImage(数组1, 数组2)
  • 参数说明

    • 数组1 = [距离画布左上角x坐标值, 距离画布左上角y坐标值, 矩形宽度, 矩形高度, 圆角弧度] (和上面drawRoundRect传入参数一致)
    • 数组2 = drawImage的传入参数一致
    • width为圆角矩形在canvas上的宽2
  • 示例代码
  1. const Brush = require('@anka-dev/brush')
  2. const brush = new Brush(canvasId)
  3. brush.drawRoundRectImage(
  4. [265, 430, 220, 220, 24],
  5. [res.path, xStart, Ystart, res.width, res.height, 265, 430, 220, 220]
  6. )

其他API

使用方式和传入参数基本和小程序相同,只是封装了一层方便链式调用

  • 创建一个矩形路径。

    • API
  1. brush.rect(number x, number y, number width, number height)

使用方式完全和小程序中完全一致

  • 参数

    • number x 矩形路径左上角的横坐标,不需要再将rpx转换成px。
    • number y 矩形路径左上角的横坐标,不需要再将rpx转换成px。
    • number width 矩形路径的宽度,不需要再将rpx转换成px。
    • number height 矩形路径的高度,不需要再将rpx转换成px。
  • 示例代码
  1. const Brush = require('@anka-dev/brush')
  2. const brush = new Brush(canvasId)
  3. brush.rect(10, 10, 150, 75).setFillStyle('red').fill().draw()