前端组件库图片上传时候做自定义裁剪操作

不论是vue还是react项目,我们在使用antd组件库做上传图片的时候,有一个上传图片裁剪的功能,但是这个功能默认是只支持1:1的裁剪操作,如何做到自定义的裁剪操作?比如显示宽高比?是否可以缩放和旋转操作?是否显示重置按钮等,其实这些在官方文档里面都有的:GitHub - nanxiaobei/antd-img-crop: 🗡 An image cropper for Ant Design Upload

只要在项目中引入:

pnpm add antd-img-crop
# or
yarn add antd-img-crop
# or
npm i antd-img-crop

使用的时候:

import { Upload } from 'antd';
import ImgCrop from 'antd-img-crop';

const Demo = () => (
  <ImgCrop>
    <Upload>+ Add image</Upload>
  </ImgCrop>
);

比如加上3/4的尺寸限制:

<ImgCrop rotationSlider aspect={3 / 4}>

那么上传的时候就会是这样子:

 

 这个 ImgCrop属性包含如下:

属性类型默认说明
qualitynumber0.4裁切图片质量,0 到 1 之间
fillColorstring'white'裁切图像填充色
zoomSliderbooleantrue图片缩放控制
rotationSliderbooleanfalse图片旋转控制
aspectSliderbooleanfalse裁切比率控制
showResetbooleanfalse显示重置按钮,重置缩放旋转及比率
resetTextstring重置重置按钮文字
aspectnumber1 / 1裁切区域宽高比,width / height
minZoomnumber1最小缩放倍数
maxZoomnumber3最大缩放倍数
cropShapestring'rect'裁切区域形状,'rect' 或 'round'
showGridbooleanfalse显示裁切区域网格(九宫格)
cropperPropsobject-react-easy-crop 的 props(* 已有 props 无法重写)
modalClassNamestring''弹窗 className
modalTitlestring'编辑图片'弹窗标题
modalWidthnumber | string弹窗宽度
modalOkstring确定按钮文字
modalCancelstring取消按钮文字
onModalOKfunction-点击确定按钮的回调
onModalCancelfunction-点击取消按钮、遮罩层、或右上角 'x' 的回调
modalPropsobjectAnt Design Modal 的 props(* 已有 props 无法重写)
beforeCropfunction-裁切弹窗打开前的回调,若返回 false 或 reject,弹窗将不会打开

ConfigProvider 无效?

尝试设置 libraryDirectory'es' 或 'lib')到 babel-plugin-import 的配置项,看看哪个会生效。

module.exports = {
  plugins: [
    ['import', { libraryName: 'antd', libraryDirectory: 'es', style: true }],
  ],
};

没有样式?(仅 antd<=v4

若使用 antd<=v4 + babel-plugin-import,且未引入 Modal 或 Slider,请手动引入这些样式:

import 'antd/es/modal/style';
import 'antd/es/slider/style';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024小神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值