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

如何使用cropper.js进行图片裁剪?中文文档详解

Cropper.js 中文文档介绍了一款强大的图片裁剪工具,支持灵活配置、手机端使用及现代浏览器。它提供了基础用法、配置选项、方法及实践案例,帮助开发者轻松实现 图片裁剪功能。

Cropper.js 是一个流行的 JavaScript 图像裁剪库,它允许用户在网页上直接进行图像的裁剪操作,下面是关于 Cropper.js 中文文档的详细介绍:

如何使用cropper.js进行图片裁剪?中文文档详解  第1张

Cropper.js 简介

Cropper.js 提供了一种简单而强大的方式,让用户能够通过鼠标或触摸操作来裁剪和旋转图片,这个库不仅支持桌面浏览器,还兼容移动设备,使得它在各种应用场景中都非常有用。

安装与引入

要使用 Cropper.js,首先需要将其引入到你的项目中,你可以通过 CDN 链接直接引入,或者通过 npm/yarn 安装。

通过 CDN 引入

<link href="https://cdn.jsdelivr.net/npm/cropperjs/dist/cropper.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/cropperjs/dist/cropper.min.js"></script>

通过 npm/yarn 安装

npm install cropperjs
或者
yarn add cropperjs

基本用法

以下是一个简单的示例,展示了如何使用 Cropper.js 来裁剪一张图片。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cropper.js 示例</title>
    <link href="https://cdn.jsdelivr.net/npm/cropperjs/dist/cropper.min.css" rel="stylesheet">
</head>
<body>
    <input type="file" id="imageInput">
    <img id="image" src="">
    <button id="cropButton">裁剪</button>
    <script src="https://cdn.jsdelivr.net/npm/cropperjs/dist/cropper.min.js"></script>
    <script>
        const imageInput = document.getElementById('imageInput');
        const image = document.getElementById('image');
        const cropButton = document.getElementById('cropButton');
        let cropper;
        imageInput.addEventListener('change', function(event) {
            const file = event.target.files[0];
            if (file) {
                const reader = new FileReader();
                reader.onload = function(e) {
                    image.src = e.target.result;
                };
                reader.readAsDataURL(file);
            }
        });
        image.addEventListener('load', function() {
            cropper = new Cropper(image, {
                aspectRatio: 16 / 9,
                viewMode: 1,
                dragModeOnLoad: false,
            });
        });
        cropButton.addEventListener('click', function() {
            const croppedCanvas = cropper.getData()[0].canvas;
            cropper.getData()[0].rotate(90);
            document.body.appendChild(croppedCanvas);
        });
    </script>
</body>
</html>

在这个示例中,我们创建了一个简单的 HTML 页面,其中包含一个文件输入框、一个用于显示图片的<img> 标签和一个裁剪按钮,当用户选择一张图片时,图片会被加载并显示在页面上,用户可以点击“裁剪”按钮来获取裁剪后的图片。

配置选项

Cropper.js 提供了丰富的配置选项,允许开发者根据需求自定义裁剪行为,以下是一些常用的配置选项:

选项名 类型 默认值 描述
aspectRatio Number 设置裁剪区域的宽高比
viewMode Number 0 设置裁剪区域的视图模式,0 表示默认模式,1 表示固定模式,2 表示限制模式
dragModeOnLoad Boolean true 设置图片加载完成后是否启用拖拽模式
autoCropArea Boolean false 设置是否自动调整裁剪区域的大小以适应图片
restore Boolean false 设置是否在初始化时恢复上一次的裁剪数据

方法

除了配置选项外,Cropper.js 还提供了一些方法,允许开发者在运行时动态控制裁剪行为,以下是一些常用的方法:

方法名 描述
generate(options) 生成裁剪后的画布或 base64 字符串
getData()[index] 获取指定索引的裁剪数据
setData()[index] 设置指定索引的裁剪数据
getCroppedCanvas(options) 获取裁剪后的画布元素
move(deltaX, deltaY) 移动裁剪区域
zoom(deltaScaleX, deltaScaleY) 缩放裁剪区域
rotate(degree) 旋转裁剪区域
getImageData() 获取原始图片的数据
setImageData(imageData) 设置新的图片数据
reset() 重置裁剪区域到初始状态
clear() 清除裁剪区域和相关数据
destroy() 销毁裁剪实例并移除相关事件监听器
enable() 启用裁剪功能
disable() 禁用裁剪功能
replace(url) 替换当前的图片 URL
replaceSrc(src, mimeType) 替换当前的图片源
load(options) 重新加载图片并初始化裁剪实例
regenerate(options) 根据新的配置重新生成裁剪区域
refresh() 刷新裁剪实例的状态
update() 更新裁剪实例的状态
change(options) 更改裁剪实例的配置选项
getContainerData() 获取容器元素的尺寸和位置信息
getCanvasData()[index] 获取指定索引的画布元素尺寸和位置信息
getCropBoxData()[index] 获取指定索引的裁剪框元素尺寸和位置信息
getImageBoxData()[index] 获取指定索引的图片框元素尺寸和位置信息
getOriginalData()[index] 获取指定索引的原始图片尺寸和位置信息
getTransformData()[index] 获取指定索引的变换矩阵数据
getOffsets()[index] 获取指定索引的元素偏移量数据
getBoundingClientRect()[index] 获取指定索引的元素边界矩形数据
getFixedPosition(position) 根据固定位置计算元素的坐标
getFixedSize(size) 根据固定尺寸计算元素的尺寸
getFixedScale(scale) 根据固定比例计算元素的缩放比例
getFixedRotation(rotation) 根据固定角度计算元素的旋转角度
getFixedData()[index] 获取指定索引的固定数据
getNormalizedPosition(position) 根据标准化位置计算元素的坐标
getNormalizedSize(size) 根据标准化尺寸计算元素的尺寸
getNormalizedScale(scale) 根据标准化比例计算元素的缩放比例
getNormalizedRotation(rotation) 根据标准化角度计算元素的旋转角度
getNormalizedData()[index] 获取指定索引的标准化数据
getRelativePosition(position) 根据相对位置计算元素的坐标
getRelativeSize(size) 根据相对尺寸计算元素的尺寸
getRelativeScale(scale) 根据相对比例计算元素的缩放比例
getRelativeRotation(rotation) 根据相对角度计算元素的旋转角度
getRelativeData()[index] 获取指定索引的相对数据
getAbsolutePosition(position) 根据绝对位置计算元素的坐标
getAbsoluteSize(size) 根据绝对尺寸计算元素的尺寸
getAbsoluteScale(scale) 根据绝对比例计算元素的缩放比例
getAbsoluteRotation(rotation) 根据绝对角度计算元素的旋转角度
getAbsoluteData()[index] 获取指定索引的绝对数据
getNaturalPosition(position) 根据自然位置计算元素的坐标
getNaturalSize(size) 根据自然尺寸计算元素的尺寸
getNaturalScale(scale) 根据自然比例计算元素的缩放比例
getNaturalRotation(rotation) 根据自然角度计算元素的旋转角度
getNaturalData()[index] 获取指定索引的自然数据
getTransformedPosition(position) 根据变换矩阵计算元素的坐标
getTransformedSize(size) 根据变换矩阵计算元素的尺寸
getTransformedScale(scale) 根据变换矩阵计算元素的缩放比例
getTransformedRotation(rotation) 根据变换矩阵计算元素的旋转角度
getTransformedData()[index] 获取指定索引的变换数据
getTransformedOffsets()[index] 根据变换矩阵计算元素的偏移量数据
getTransformedBoundingClientRect()[index] 根据变换矩阵计算元素的边界矩形数据
getTransformedBoundingBox()[index] 根据变换矩阵计算元素的边界框数据
getTransformedImageBox()[index] 根据变换矩阵计算元素的图片框数据
getTransformedCanvasBox()[index] 根据变换矩阵计算元素的画布框数据
getTransformedCropBox()[index] 根据变换矩阵计算元素的裁剪框数据
getTransformedImageData()[index] 获取指定索引的变换后的图片数据
getTransformedCanvasData()[index] 获取指定索引的变换后的画布数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的变换后的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的变换后的图片框数据
getTransformedCanvasBoxData()[index] 获取指定索引的变换后的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的图像框数据
getTransformedCanvasBoxData()[index] 获取指定索引的画布框数据
getTransformedCropBoxData()[index] 获取指定索引的裁剪框数据
getTransformedImageBoxData()[index] 获取指定索引的图像框数据
getTransformedCanvasBoxData()[index] 获取指定索引的画布框数据
0