# hi_vpss_crop_info

#### 说明

定义裁剪功能所需信息。


#### 定义

```
typedef struct {
hi_bool
enable;
hi_coord
crop_mode;
hi_rect
crop_rect;
}hi_vpss_crop_info;
```


#### 成员

| 成员名称 | 描述 |
| --- | --- |
| enable | 是否开启裁剪功能。 取值范围： HI\_FALSE：不开启。 HI\_TRUE：开启。 |
| crop\_mode | 裁剪区域起始点坐标模式。 |
| crop\_rect | 裁剪的矩形区域。 将crop\_mode参数设置为相对坐标时，裁剪区域坐标取值范围为 [0, 999]，裁剪区域宽高取值范围为[1, 1000] 。 裁剪区域的尺寸不能小于VPSS支持的最小输入分辨率，不能超过VPSS支持的最大输入分辨率；如果裁剪宽度大于输入图像宽度，则裁剪输出宽度调整为输入图像宽度；如果裁剪高度大于输入图像高度，则裁剪输出高度调整为输入图像高度；裁剪区域起始点不支持负坐标，裁剪区域右边界不能超出VPSS支持的最大输入宽度，裁剪区域下边界不能超出VPSS支持的最大输入高度。 如果裁剪区域超出图像范围，裁剪坐标向原点方向移动，优先保证裁剪出的宽高与所设置的参数相同。 |


- 相对坐标模式下：

  - 横坐标计算公式： X = crop_rect.x * 实际图像宽度/1000，计算完成后会进行取整操作和对齐操作。公式同样适用于纵坐标计算。
  - 区域宽度计算公式：Width=crop_rect.width * 实际图像宽度/1000，计算完成后会进行取整操作和对齐操作。公式同样适用于区域高度计算。
  - 如果经过计算后，裁剪区域宽高小于VPSS支持的最小分辨率，则裁剪输出宽高调整为输入图像宽高，接口返回成功。
- 绝对坐标模式下：

  - 如果裁剪宽高小于VPSS支持的最小输入分辨率，则crop设置不生效，接口返回失败。
  - 如果裁剪宽高大于VPSS支持的最大输入分辨率，则crop设置不生效，接口返回失败。
  - 裁剪区域坐标和裁剪宽高之和超过VPSS支持的最大输入分辨率，则crop设置不生效，接口返回失败。
