Cropper.js

2024-06-28 20:18:39 140
Cropper.js 是一个功能丰富的 JavaScript 图片裁剪库,允许用户轻松地在网页上进行图片裁剪操作。它支持现代浏览器以及 IE 9+,提供了灵活的 API 接口,可以处理各种图片裁剪需求。

特点

  • 响应式设计:Cropper.js 可以自动适应不同的屏幕尺寸。
  • 多种操作:支持旋转、缩放、移动和裁剪图片。
  • 高性能:使用纯 JavaScript 实现,具有良好的性能表现。
  • 丰富的配置选项:提供多种配置选项,满足不同使用场景。
  • 事件处理:支持多种事件,如裁剪开始、裁剪结束等,便于进行自定义操作。

使用场景

  • 图片编辑工具:为用户提供简单的图片裁剪功能。
  • 头像上传:用户上传并裁剪头像图片。
  • 在线相册:用户在上传照片时进行裁剪和调整。

安装方式

可以通过 npm 安装 Cropper.js:

npm install cropperjs

也可以通过 CDN 引入:

<script src="https://unpkg.com/cropperjs"></script>

使用示例

在 HTML 中包含一个图片元素:

<img id="image" src="path/to/image.jpg" alt="Picture">

在 JavaScript 中初始化 Cropper 实例:

import Cropper from 'cropperjs';

const image = document.getElementById('image');
const cropper = new Cropper(image, {
  aspectRatio: 16 / 9,
  crop(event) {
    console.log(event.detail.width);
    console.log(event.detail.height);
  },
});

常用 API 介绍

  • enable():启用裁剪框。
  • disable():禁用裁剪框。
  • destroy():销毁 Cropper 实例。
  • crop():开始裁剪。
  • reset():重置裁剪区域。
  • clear():清除裁剪框。
  • replace(url, hasSameSize):替换裁剪图片的 URL。
  • move(x, y):移动图片。
  • moveTo(x, y):移动到指定坐标。
  • zoom(ratio):缩放图片。
  • zoomTo(ratio, pivot):缩放到指定比例。
  • rotate(degree):旋转图片。
  • rotateTo(degree):旋转到指定角度。
  • scale(scaleX, scaleY):按比例缩放图片。
  • scaleX(scaleX):按 X 轴缩放图片。
  • scaleY(scaleY):按 Y 轴缩放图片。
  • getData(rounded):获取裁剪数据。
  • setData(data):设置裁剪数据。
  • getContainerData():获取容器数据。
  • getImageData():获取图片数据。
  • getCanvasData():获取画布数据。
  • setCanvasData(data):设置画布数据。
  • getCropBoxData():获取裁剪框数据。
  • setCropBoxData(data):设置裁剪框数据。
  • setAspectRatio(aspectRatio):设置裁剪框的宽高比。
  • setDragMode(mode):设置拖拽模式(none, crop, move)。

官方资料