跳转到内容

图片裁剪 Cropper

默认会在图片加载后自动把选区贴合到图片可见区域,适合快速给用户一个可调整的初始裁剪框。

通过 selection-props 约束选区比例,适合头像、卡片封面这类固定裁切输出。

通过多路 v-model 风格事件同步选区位置和尺寸,方便在表单、向导或服务端预览链路里持久化裁剪结果。

通过 image-propsfit-selection-to-image 调整图片初始化方式,适合需要保留封面填充感的场景。

参数名描述类型默认值
src裁剪图片地址string''
canvas-props透传给 CropperCanvas 的属性CropperCanvasProps{}
image-props透传给 CropperImage 的属性CropperImageProps{}
selection-props透传给 CropperSelection 的属性,不包含位置与尺寸控制CropperSelectionProps{}
template自定义 cropperjs 内部模板string-
selection-x选区 x 坐标number-
selection-y选区 y 坐标number-
selection-width选区宽度number-
selection-height选区高度number-
width容器宽度string | number'100%'
height容器高度string | number'100%'
fit-selection-to-image图片加载完成后是否让选区贴合图片可见区域booleantrue
参数名描述类型默认值
background是否显示棋盘格背景booleanfalse
disabled是否禁用画布交互booleanfalse
scale-step滚轮缩放步进number-
theme-color主题色string-
参数名描述类型默认值
initial-center-size图片初始居中尺寸模式'contain' | 'cover''contain'
rotatable是否允许旋转booleanfalse
scalable是否允许缩放与翻转booleanfalse
skewable是否允许斜切booleanfalse
translatable是否允许平移booleanfalse
参数名描述类型默认值
aspect-ratio选区宽高比约束number-
initial-aspect-ratio初始宽高比number-
initial-coverage初始覆盖率number-
dynamic是否跟随图片变换动态调整booleanfalse
movable是否可移动booleanfalse
resizable是否可调整尺寸booleanfalse
zoomable是否支持滚轮缩放选区booleanfalse
keyboard是否启用键盘控制booleanfalse
outlined是否显示轮廓booleanfalse
precise是否保留坐标和尺寸的小数精度booleanfalse
事件名描述参数
selection:change选区位置或尺寸变化时触发detail: { x: number; y: number; width: number; height: number }
update:selectionX选区 x 坐标更新时触发value: number
update:selectionY选区 y 坐标更新时触发value: number
update:selectionWidth选区宽度更新时触发value: number
update:selectionHeight选区高度更新时触发value: number
canvas:action画布动作状态变化时触发detail: unknown
canvas:actionstart指针按下时触发detail: unknown
canvas:actionmove指针移动时触发detail: unknown
canvas:actionend指针抬起时触发detail: unknown
image:transform图片变换矩阵变化时触发detail: { matrix: number[]; oldMatrix: number[] }

通过组件 ref 可调用以下实例方法:

方法名描述返回值
getInstance获取 cropperjs 原始实例Cropper | null
getCropperCanvas获取底层 CropperCanvas 元素CropperCanvas | null
getCropperImage获取底层 CropperImage 元素CropperImage | null
getCropperSelection获取首个 CropperSelection 元素CropperSelection | null
getCropperSelections获取全部 CropperSelection 元素CropperSelection[] | null
destroy销毁当前实例void

当前组件不提供具名插槽,推荐通过 template 和底层 props 组合来调整 cropperjs 的内部行为。