---
name: "cropImages"
mode: "kit"
versionRequirements:
  - { name: "BaseKit", version: "3.14.2" }
  - { name: "@ray-js/ray", version: "1.5.30" }
platform:
  - "iOS"
  - "Android"
async: true
title: "cropImages - 图片裁剪"
---

## cropImages

> [VERSION] BaseKit >= 3.14.2 | @ray-js/ray >= 1.5.30

> [PLATFORM] iOS, Android

> ⚡ **支持 Promise 调用** — 不传 success / fail / complete 回调时，该方法返回 Promise。

### 描述

图片裁剪

### 参数

| 属性 | 类型 | 必填 | 默认值 | 最低版本 | 描述 |
| --- | --- | --- | --- | --- | --- |
| `cropFileList` | `CropImageItemBean[]` | 否 | - | `3.14.2` | 裁剪图片的地址 |
| `complete` | `() => void` | 否 | - | - | 接口调用结束的回调函数（调用成功、失败都会执行） |
| `success` | `(params: Object) => void` ↓见下方 | 否 | - | - | 接口调用成功的回调函数 |
| `fail` | `(params: Object) => void` ↓见下方 | 否 | - | - | 接口调用失败的回调函数 |

#### success 回调参数

| 属性 | 类型 | 最低版本 | 描述 |
| --- | --- | --- | --- |
| `fileList` | `string[]` | `3.14.2` | 裁剪完成的图片路径列表 |

#### fail 回调参数

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `errorMsg` | `string` | 错误信息 |
| `errorCode` | `string \| number` | 错误码 |
| `innerError` | `Object` | 错误扩展 |

##### fail(params).innerError 的属性

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `errorCode` | `string \| number` | 错误扩展码 |
| `errorMsg` | `string` | 错误扩展信息 |


### 引用对象

##### `interface` CropImageItemBean

| 属性 | 类型 | 最低版本 | 描述 |
| --- | --- | --- | --- |
| `filePath` | `string` | `3.14.2` | 裁剪图片的地址 |
| `topLeftX` | `number` | `3.14.2` | 左上角坐标X |
| `topLeftY` | `number` | `3.14.2` | 左上角坐标Y |
| `bottomRightX` | `number` | `3.14.2` | 右下角坐标X |
| `bottomRightY` | `number` | `3.14.2` | 右下角坐标Y |
| `format` | `number` | `3.21.0` | 图片裁剪后输出类型 0为jpg,1为png,2为GIF 默认是0 |
| `rotate` | `number` | `3.24.3` | 旋转角度，范围 0~360 度 |
| `outputImageWidth` | `number` | `3.29.1` | 输出宽度 |
| `outputImageHeight` | `number` | `3.29.1` | 输出高度 |


### 示例代码

#### Demo

```tsx
import { chooseImage, cropImages } from '@ray-js/ray'

// 从相册选真实图片，再裁剪。
chooseImage({
  count: 1,
  sourceType: ["album"],
  success: res => {
    cropImages({
      cropFileList: res.tempFilePaths.map(filePath => ({
        filePath,
        topLeftX: 0,
        topLeftY: 0,
        bottomRightX: 100,
        bottomRightY: 100,
        format: 0,
        rotate: 0,
        outputImageWidth: 100,
        outputImageHeight: 100,
      })),
      success: data => {
        console.log(data);
      },
      fail: error => {
        console.error(error);
      },
    });
  },
  fail: error => {
    console.error(error);
  },
});
```
