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

news2024/11/17 15:38:40

不论是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';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1662716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue 中的 Vuex

Vuex Vuex是什么&#xff1f; 概念&#xff1a;专门在vue中实现集中式状态&#xff08;数据&#xff09;管理的一个Vue插件&#xff0c;对Vue应用中多个组件的共享状态进行集中式的管理(读/写&#xff09;&#xff0c;也是一种组件间通信的方式&#xff0c;且适用于任意组件间…

【二叉树算法题记录】二叉树的所有路径,路径总和——回溯

目录 257. 二叉树的所有路径题目描述题目分析cpp代码 112. 路径总和题目描述题目分析cpp代码 257. 二叉树的所有路径 题目描述 给你一个二叉树的根节点root &#xff0c;按任意顺序&#xff0c;返回所有从根节点到叶子节点的路径。 题目分析 其实从根节点往下走&#xff0c…

C语言/数据结构——(链表的回文结构)

一.前言 今天在牛客网上刷到了一道链表题——链表的回文结构https://www.nowcoder.com/practice/d281619e4b3e4a60a2cc66ea32855bfa?&#xff0c;巧合的是它的解题思路恰好是我们一起分享过两道链表题的汇总。这两道题分别是反转链表和链表的中间节点。废话不多数&#xff0c…

css 案例 横向滚动渐变

效果 完整代码&#xff1a; <template><view class"content"><view class"tab"><view class"tab-item" v-for"(item,index) in tab" :key"index" click"handlerTab(index)":class"ind…

Spring Cloud Gateway 11种断言工厂

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Spring Cloud Gateway路由匹配是Spring WebFlux基础功能的一部分,在Spri…

项目经理有哪些常见的沟通技巧?

项目经理有哪些常见的沟通技巧&#xff1f; 项目管理的核心之一是沟通。有效的沟通技巧对于确保项目团队成员之间的合作、项目信息的准确传达以及项目目标的顺利实现至关重要。一个号的项目管理工具可以让我们事半功倍&#xff0c;结合项目管理工具zz-plan 来探讨一些项目经理…

STM32F103RCT6#1

实验1 F103基准实验 1.1实验内容&#xff1a;验证以下基本功能&#xff1a;两个LED&#xff08;编号为LED1和LED2&#xff09;每500ms交替闪烁&#xff1b;计算机上的串口助手每秒输出一次字符串。 &#xff08;实验背景&#xff09;启动车辆时&#xff0c;首先将变速箱从驻车…

Baidu Comate 编程插件:提升开发效率的利器

文章目录 引言简介目的 Baidu Comate插件概述定义与功能市场现状竞品分析 安装与配置VsCode 安装&#xff1a;注意事项 版本选择 核心特性详解功能介绍代码生成实时续写错误纠正 使用体验体验地址 引言 简介 基于文心大模型&#xff0c;结合百度积累多年的编程现场大数据和外…

RFID读写头JY-V640在半导体wafer晶圆盒的使用流程

为了最大限度地提高生产效率&#xff0c;新的晶圆工厂和正在翻新升级的晶圆工厂选择采用RFID技术应用在半导体制造业上&#xff0c;通过RFID技术的非接触式采集信息特性&#xff0c;对晶圆盒在生产、存储、运输过程中进行信息追踪和管理&#xff0c;提升半导体制造业的生产效率…

洪水仿真模拟(ArcGIS),水利数字孪生新利器

这两天ArcGIS Pro的官方账号释放了一个名为“Flood Simulation in ArcGIS Pro”的洪水模拟功能视频。根据视频详情页的介绍&#xff0c;该洪水仿真模拟功能会作为新功能出现在ArcGIS Pro 3.3中。 由于我目前从事的主要应用方向都是弱GIS的领域&#xff0c;所以我已经很久没有再…

Selenium——获取元素和操纵元素的方法

1、获取元素的方法 1、通过id获取 element wd.find_element(By.ID,"id")2、通过classname获取 elements wd.find_elements_by_class_name("plant") for element in elements:print(element.text)3、通过tagname获取元素 elements wd.find_elements_…

Ubuntu20.04 设置路由器

1. 网络拓扑图 2. 查看网卡信息 ip a得出如下网卡信息&#xff0c;enp1s0和enp2s0为两个网卡名称&#xff0c;以及相关两个网卡的详细信息&#xff0c;不同设备的网卡名称可能不一样 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul…

9.spring-图书管理系统

文章目录 1.开发项目流程1.1开发开发1.2数据库的设计 2.MySQL数据库相关代码3.构造图书结构3.1用户登录3.2图书列表3.3图书添加3.4图书删除3.4.1批量删除 3.5图书查询(翻页) 4.页面展示4.1登录页面4.2列表页面4.3增加图书页面4.4修改图书信息页面 5.功能展示5.1增加图书信息5.2…

技巧:无脑秒解“已知前序\后序与中序遍历序列,求后序\前序遍历序列”

目录 举例一 1、画坐标系&#xff1a; 2、填表&#xff1a; 3、连线 举例二 1、画坐标系 2、填表 3、连线 原理 这是一个笔试技巧&#xff0c;对代码能力没有什么提高。 可以用&#xff0c;但是代码也要会写&#xff0c;那才是根基。 相对于传统方法&#xff0c;此方法非常的快…

哈希表第1/9题--哈希表基础理论介绍

1. 哈希表的定义&#xff1a;哈希表是根据关键码的值而直接进行访问的数据结构。数组就是一张常见的哈希表&#xff0c;其中哈希表中关键码就是数组的索引下标&#xff0c;然后通过下标直接访问数组中的元素。 2.哈希表的作用&#xff1a;通过哈希表可以快速判断一个元素是否出…

React 第三十一章 虚拟DOM

面试题&#xff1a;什么是虚拟DOM&#xff1f;其优点有哪些&#xff1f; 标准且浅显的答案 虚拟dom本质上就是一个普通的 JS 对象&#xff0c;用于描述视图的界面结构 虚拟 DOM 最早是由 React 团队提出来的&#xff0c;因此 React 团队在对虚拟 DOM 的定义上面有绝对的话语权。…

书生·浦语大模型实战营之 OpenCompass大模型评测

书生浦语大模型实战营之 OpenCompass &#xff1a;是骡子是马&#xff0c;拉出来溜溜 为什么要研究大模型的评测&#xff1f; 百家争鸣&#xff0c;百花齐放。 首先&#xff0c;研究评测对于我们全面了解大型语言模型的优势和限制至关重要。尽管许多研究表明大型语言模型在多…

GA-CNN-LSTM多输入分类|遗传算法-卷积-长短期神经网络|Matlab

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译&am…

2023年国赛高教杯数学建模C题蔬菜类商品的自动定价与补货决策解题全过程文档及程序

2023年国赛高教杯数学建模 C题 蔬菜类商品的自动定价与补货决策 原题再现 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c;大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c;商超通常会根据…

数字型隔离器ISO121x的用法

目录 概述 1 认识ISO121x 1.1 简介 1.2 特性 1.3 应用领域 2 ISO121x芯片结构 2.1 ISO1211引脚介绍 2.2 ISO1211的通用应用电路 2.3 Layout Example 3 应用范例 3.1 TI提供的评估板 3.2 评估板的原理图电路 概述 本文主要介绍ISO121x的相关特性&#xff0c;以及其…