# 基于WebGL的视频裁切处理器

这是一个基于WebGL的视频裁切处理器，支持多种裁切类型。您可以通过传入不同的配置数组来实现不同的视频裁切效果。

## 使用说明

1. 创建一个`VideoProcessor`实例，并传入适当的配置数组。
2. 调用`initializeById`方法，传入源canvas的ID和目标canvas ID数组。这会初始化源和目标canvas，并将源canvas内容处理后绘制到目标canvas。
3. 在需要更新帧时（例如，源视频播放新的一帧时），调用`drawFrame`方法。这会将当前源canvas中的帧复制并按照给定配置处理，然后绘制到目标canvas。

### 示例代码

```javascript
const configs = [
  { type: 'none', x: 0, y: 0, w: 1, h: 1 },
  { type: "scaleOnly", x: 2/3, y: 0.0, w: 1/3, h: 4/9 },
  { type: "threePart", x: 0.0, y: 22/27, w: 1, h: 4/27 },
];
const videoProcessor = new VideoProcessor(configs);
videoProcessor.initializeById("video1", ["camera1", "camera2", "camera3"]);

// 每当源视频播放新的一帧时执行以下操作
videoProcessor.drawFrame();
```

## 配置参数说明
 
 - `type`: 裁切类型，默认值为"none"。
 - `x`: 裁切区域的起始横坐标百分比（左上角），范围介于0到1之间，默认值为0。
 - `y`: 裁切区域的起始纵坐标百分比（左上角），范围介于0到1之间，默认值为0。
 - `w`: 裁切区域的宽度百分比，范围介于0到1之间，默认值为1。
 - `h`: 裁切区域的高度百分比，范围介于0到1之间，默认值为1。

### 类型

支持以下裁切类型：

 - `none`: 无裁切，原样显示。
 - `scaleOnly`: 缩放裁切，仅裁切选定区域并缩放至目标canvas。
 - `threePart`: 三部分裁切，分别裁切出3部分源视频，并缩放至目标canvas。
