小程序API能力集成指南——画布API汇总(一)

RJS Canvas

Canvas

Canvas 实例, 在 RJS 中可通过 getCanvasById 获取。

属性

number width:画布宽度

number height:画布高度

方法

如下。

1、getContext

Canvas.getContext(string contextType)

RenderingContext Canvas.getContext(string contextType)

功能描述

该方法返回 Canvas 的绘图上下文

参数

string contextType

返回值

支持获取 2D 和 WebGL 绘图上下文

RenderingContext

2、createImage

Canvas.createImage()

Image Canvas.createImage()

功能描述

创建一个图片对象。支持在 2D Canvas 和 WebGL Canvas 下使用, 但不支持混用 2D 和 WebGL 的方法。

参数

function callback :执行的 callback

返回值

Image

3、createImageData

Canvas.createImageData()

ImageData Canvas.createImageData()

功能描述

创建一个 ImageData 对象。仅支持在 2D Canvas 中使用。

参数

width: number 宽度

height: number 高度

settings?: ImageDataSettings 配置项

返回值

ImageData

4、createPath2D

Canvas.createPath2D

Path2D Canvas.createPath2D(Path2D path)

功能描述

创建 Path2D 对象。

参数

Path2D path

返回值

Path2D

5、requestAnimationFrame

Canvas.requestAnimationFrame

number Canvas.requestAnimationFrame(function callback)

功能描述

在下次进行重绘时执行。支持在 2D Canvas 和 WebGL Canvas 下使用, 但不支持混用 2D 和 WebGL 的方法。

参数

function callback :执行的 callback

返回值

number:请求 ID

6、cancelAnimationFrame

Canvas.cancelAnimationFrame 

Canvas.cancelAnimationFrame(number requestID)

功能描述

取消由 requestAnimationFrame 添加到计划中的动画帧请求。支持在 2D Canvas 和 WebGL Canvas 下使用, 但不支持混用 2D 和 WebGL 的方法。

参数

number requestID

  👉 立即开发

Canvas ImageData

ty.canvasGetImageData(Object object)

获取 canvas 区域隐含的像素数据。

参数
Object object
属性类型默认值必填说明
canvasIdstring画布标识,传入 canvas 组件的 canvas-id 属性。
xnumber将要被提取的图像数据矩形区域的左上角横坐标
ynumber将要被提取的图像数据矩形区域的左上角纵坐标
widthnumber将要被提取的图像数据矩形区域的宽度
heightnumber将要被提取的图像数据矩形区域的高度
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性类型说明
widthnumber图像数据矩形的宽度
heightnumber图像数据矩形的高度
dataArray(结构同 Uint8ClampedArray)图像像素点数据,一维数组,每四项表示一个像素点的 rgba
示例代码
ty.canvasGetImageData({
  canvasId: 'myCanvas',
  x: 0,
  y: 0,
  width: 100,
  height: 100,
  success(res) {
    console.log(res.width); // 100
    console.log(res.height); // 100
    console.log(res.data instanceof Array); // true
    console.log(res.data.length); // 100 * 100 * 4
  },
});

ty.canvasPutImageData(Object object)

将像素数据绘制到画布。

参数
Object object
属性类型默认值必填说明
canvasIdstring画布标识,传入 canvas 组件的 canvas-id 属性。
data

Array(结构同Uint8ClampedArray)

图像像素点数据,一维数组,每四项表示一个像素点的 rgba
xnumber源图像数据在目标画布中的位置偏移量(x 轴方向的偏移量)
ynumber源图像数据在目标画布中的位置偏移量(y 轴方向的偏移量)
widthnumber源图像数据矩形区域的宽度
heightnumber源图像数据矩形区域的高度
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)
示例代码
const data = [255, 0, 0, 1];
ty.canvasPutImageData({
  canvasId: 'myCanvas',
  x: 0,
  y: 0,
  width: 1,
  height: 1,
  data: data,
  success(res) {},
});

CanvasGradient

渐变对象

方法

CanvasGradient.addColorStop(number stop, string color)

addColorStop

CanvasGradient.addColorStop(number stop, string color)

功能描述

添加颜色的渐变点。小于最小 stop 的部分会按最小 stop 的 color 来渲染,大于最大 stop 的部分会按最大 stop 的 color 来渲染

参数
number stop

表示渐变中开始与结束之间的位置,范围 0-1。

string color

渐变点的颜色。

示例代码

const ctx = ty.createCanvasContext('myCanvas');
 
// Create circular gradient
const grd = ctx.createLinearGradient(30, 10, 120, 10);
grd.addColorStop(0, 'red');
grd.addColorStop(0.16, 'orange');
grd.addColorStop(0.33, 'yellow');
grd.addColorStop(0.5, 'green');
grd.addColorStop(0.66, 'cyan');
grd.addColorStop(0.83, 'blue');
grd.addColorStop(1, 'purple');
 
// Fill with gradient
ctx.setFillStyle(grd);
ctx.fillRect(10, 10, 150, 80);
ctx.draw();

  👉 立即开发

  • 14
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值