当前位置:首页 > 行业动态 > 正文

CropperJS文档,如何全面了解和使用这一强大的图像裁剪工具?

Cropp.js 是一个基于 JavaScript 的图像裁剪库,它允许用户通过简单的配置项来自定义裁剪框的大小、形状和位置。

cropperjs是一款功能强大且使用简单的图片裁剪工具,适用于各种现代浏览器,包括IE9及以上版本,它支持移动端使用,并且提供了多种配置选项,可以灵活地满足不同需求,以下是关于cropperjs的详细文档介绍:

### 基础用法

要开始使用cropperjs,首先需要在HTML中引入cropper.css和cropper.js文件,可以通过CDN或本地文件引入。

“`html

“`

在HTML中创建一个包含图片的结构:

“`html

“`

在JavaScript中初始化Cropper对象并绑定到图片上:

“`javascript

import Cropper from ‘cropperjs’;

import ‘cropperjs/dist/cropper.css’;

const image = document.getElementById(‘image’);

const cropper = new Cropper(image, {

aspectRatio: 16 / 9, // 设置裁剪框的宽高比为16:9

viewMode: 1, // 限制裁剪框不超过图片容器的范围

});

“`

### 配置选项

cropperjs提供了丰富的配置选项,可以根据需求进行自定义设置,以下是一些常见的配置选项:

| 配置项 | 描述 |

|—————–|—————————————————————————————————|

| `aspectRatio` | 裁剪框的固定宽高比,默认是自由比例。 |

| `viewMode` | 视图模式(0:无限制;1:限制在图片范围内;2:cover填充;3:contain填充)。 |

| `dragMode` | 拖动模式(crop:创建新裁剪框;move:图片可移动;none:什么也不做)。 |

| `initialAspectRatio` | 初始裁剪框的宽高比,默认与图片相同。 |

| `autoCropArea` | 自动裁剪区域的大小,相对于原始图片大小,默认为0.8。 |

| `responsive` | 窗口尺寸调整后是否重新渲染,默认为true。 |

| `restore` | 窗口尺寸调整后是否恢复被裁剪的区域,默认为true。 |

| `checkCrossOrigin` | 检查图片是否跨域,默认为true。 |

| `modal` | 是否显示黑色蒙版,默认为true。 |

| `guides` | 是否显示虚线边框,默认为true。 |

| `background` | 是否显示背景网格,默认为true。 |

| `zoomable` | 是否允许缩放图片,默认为true。 |

| `rotatable` | 是否允许旋转图片,默认为true。 |

| `movable` | 是否允许移动图片,默认为true。 |

| `scalable` | 是否允许改变图片尺寸,默认为true。 |

| `zoomOnWheel` | 是否允许鼠标滚轮缩放图片,默认为true。 |

| `preview` | 预览区域元素或选择器,默认为空字符串。 |

### 方法与事件

cropperjs提供了多种方法和事件,以便在用户操作时进行响应,以下是一些常用的方法和事件:

#### 方法

| 方法名 | 描述 |

|—————-|————————————————————————————————|

| `crop()` | 手动显示裁剪框。 |

| `reset()` | 重置图片和裁剪框为初始状态。 |

| `replace(url)` | 替换图片路径并重建裁剪框,可选参数`hasSameSize`表示新旧图片尺寸是否相同。 |

| `enable()` | 解冻裁剪框。 |

| `disable()` | 冻结裁剪框。 |

| `destroy()` | 销毁裁剪框并移除cropper实例。 |

| `move(offsetX, offsetY)` | 移动图片指定距离。 |

| `moveTo(x, y)` | 移动图片到一个指定的点。 |

| `zoom(ratio)` | 缩放图片,ratio大于零是放大,小于零是缩小。 |

| `zoomTo(ratio, pivot)` | 缩放到指定比例并设置中心点位置。 |

| `rotate(degree)` | 旋转图片角度。 |

| `rotateTo(degree)` | 旋转到绝对角度。 |

| `scale(scaleX, scaleY)` | 缩放图片的宽高比,一个参数代表纵横向缩放值相同。 |

| `getData()` | 返回裁剪区域基于原图片的位置和尺寸信息。 |

| `setData(data)` | 改变裁剪区域基于原图片的位置和尺寸信息,仅当viewMode不为0时有效。 |

| `getContainerData()`, `getImageData()`, `getCanvasData()`, `setCanvasData(data)`, `getCropBoxData()`, `setCropBoxData(data)` | 获取或设置容器、图片、画布及裁剪框的数据。 |

| `getCroppedCanvas([options])` | 获取裁剪后的canvas对象,options用于设置canvas的一些数据。 |

#### 事件

| 事件名 | 描述 |

|—————|————————————————————————————————|

| `ready` | Cropper准备就绪时触发。 |

| `crop` | 裁剪完成后触发。 |

| `cropstart` | 裁剪开始时触发。 |

| `cropmove` | 裁剪框移动时触发。 |

| `cropend` | 裁剪结束时触发。 |

| `zoom` | 缩放完成时触发。 |

| `rotate` | 旋转完成时触发。 |

### 示例代码

以下是一个使用Vue框架的完整示例:

“`vue

“`

### 常见问题FAQs

**Q1: cropperjs支持哪些浏览器?

A1: cropperjs支持包括IE9以上的现代浏览器,如Chrome、Firefox、Safari和Edge等。

**Q2: 如何更改全局默认配置?

A2: 可以使用`Cropper.setDefaults(options)`方法来更改全局默认配置。

“`javascript

Cropper.setDefaults({

aspectRatio: NaN, // 取消宽高比限制

viewMode: 1, // 限制裁剪框不超过图片范围

});

“`

### 小编有话说

cropperjs作为一款强大的图片裁剪工具,不仅功能丰富,而且易于使用,通过合理的配置和使用,可以轻松实现图片裁剪的各种需求,希望本文能够帮助大家更好地理解和使用cropperjs,如果有任何问题或建议,欢迎随时交流讨论。

0