canvasGetImageData.md 1.6 KB
Newer Older
Q
qiang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#### uni.canvasGetImageData(OBJECT,this)

返回一个数组,用来描述 canvas 区域隐含的像素数据,在自定义组件下,第二个参数传入自定义组件实例 this,以操作组件内 `<canvas>` 组件。

**OBJECT参数说明:**

|参数|类型|必填|说明|
|---|---|---|---|
|canvasId|String|是|画布标识,传入 ```<canvas />``` 的 canvas-id(支付宝小程序是id、其他平台是canvas-id)|
|x|Number|是|将要被提取的图像数据矩形区域的左上角 x 坐标|
|y|Number|是|将要被提取的图像数据矩形区域的左上角 y 坐标|
|width|Number|是|将要被提取的图像数据矩形区域的宽度|
|height|Number|是|将要被提取的图像数据矩形区域的高度|
|success|Function|否|接口调用成功的回调函数|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|

**success回调返回参数:**

|参数|类型|说明|
|---|---|---|
|errMsg|String||
|width|Number|图像数据矩形的宽度|
|height|Number|图像数据矩形的高度|
|data|Uint8ClampedArray|图像像素点数据,一维数组,每四项表示一个像素点的rgba|


**示例代码**

```javascript
uni.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 Uint8ClampedArray) // true
    console.log(res.data.length) // 100 * 100 * 4
  }
})
```