Cropper

用于裁切图片,支持自定义裁切框样式,可拖动调整裁切框与图片位置,可缩放、旋转被裁切图片。

设计文档(新窗口打开)

使用场景

Cropper 用于裁切图片,支持自定义裁切框样式,可通过拖动调整裁切框位置,被裁切图片位置;可缩放,旋转被裁切图片。

代码演示

如何引入

import { Cropper } from '@chenzy-design/svelte';

基本用法

通过 src 设置被裁切的图片;可通过 shape 设置裁切框形状,默认为方形。

自定义裁切框比例

可通过 defaultAspectRatio 设置初始的裁切框比例(默认为 1)。可通过 aspectRatio 设置固定的裁切框比例。 设置 aspectRatio 时,裁切框比例固定,拖动时裁切框将以此比例变化。

受控旋转/缩放图片

通过 rotate 和 zoom 控制图片旋转和缩放,可通过 onZoomChange 拿到最新的 zoom 值。

旋转
-360 360
缩放
0.1 3

裁切框设置

可通过 cropperBoxStyle、cropperBoxClassName 自定义裁切框样式。可通过 showResizeBox 设置是否展示裁切框边角的调整块。

展示调整块

实时预览裁切效果

通过 preview 指定预览容器,实时预览裁切效果。

旋转
-360 360
缩放
0.1 3
实时预览

API

属性说明类型默认值
aria-label容器无障碍名称(未设时走 locale Cropper.container,本库补充)string-
aspectRatio裁切框比例number-
class类名string-
cropperBoxClassName裁切框类名string-
cropperBoxStyle裁切框样式string-
defaultAspectRatio初始裁切框比例number1
fill裁切结果中非图片部分的填充色stringrgba(0, 0, 0, 0)
imgProps透传给 img 标签的属性object-
maxZoom最大缩放倍数number3
minZoom最小缩放倍数number0.1
onZoomChange缩放回调(zoom: number) => void-
preview指定预览容器() => HTMLElement-
rotate旋转角度number-
shape裁切框形状'rect' \| 'round' \| 'roundRect'rect
showResizeBox是否展示调整块booleantrue
src图片地址string-
style样式string-
zoom缩放比例number-
zoomStep缩放步长number0.1

Methods

绑定在组件实例上的方法,通过 bind:this 拿到实例后调用。

NameDescription
getCropperCanvas获取裁剪图片的 canvas

设计变量

变量
默认值
用法
--cd-cropper-box-outline-color var(--cd-color-primary) 裁切框 outline 颜色
--cd-cropper-corner-bg var(--cd-color-primary) 裁切框 8 角点填充色(品牌色,对齐 Semi $color-cropper_box_corner-bg)
--cd-cropper-mask-bg var(--cd-color-overlay-bg) 裁切框外遮罩层背景色(半透明暗色)
显示第 1 条-第 3 条,共 3 条
  • 1