AntDesign 自定义图片上传前端压缩画质

news2024/12/25 0:56:49

为什么压缩图片?

应为现在公司没有使用云数据库 从而为了减少服务器的消耗需要将用户上传的图片压缩

前端压缩图片的技术选择!

查阅资料发现当下两种压缩的方法!!第一种使用工具库实现 npm install image-conversion --save

第二种通过画布实现!!!

第一种实现方法连接:https://blog.csdn.net/Superman_peng/article/details/107740407

第二种实现:

Canvas

1、需要将我们上传的文件获取到将file传递到函数中

    //压缩图片
            CompressImg(file) {
                return new Promise(resolve => {
                    // 图片压缩
                    let reader = new FileReader(), img = new Image();
                    reader.readAsDataURL(file);
                    reader.onload = function (e) {
                        img.src = e.target.result;
                    };
                    img.onload = function () {

                        let canvas = document.createElement('canvas');
                        let context = canvas.getContext('2d');
                        //设置画布的宽高从而限制图片的宽高
                        let originWidth = 300;
                        let originHeight = 300;
                        canvas.width = originWidth;
                        canvas.height = originHeight;
                        context.clearRect(0, 0, originWidth, originHeight);
                        context.drawImage(img, 0, 0, originWidth, originHeight);
                        canvas.toBlob(blob => {
                            // 将blob对象转化为图片文件
                            let imgFile = new File([blob], file.name, {type: file.type});
                            resolve(imgFile);
                        }, file.type, 0.2); // file压缩的图片类型
                    };
                });
            },

2、此时图片也就压缩成功  将图片imgFile传递到上传图片的方法中即可..........

但是使用AntDesign无法实现在自动提交前对图片处理......也就是说不可以自动提交修改图片大小 所以将action关闭开启

:custom-request="customRequest"

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

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

相关文章

JAVA集合汇总

数组: 固定长度,从栈中分配空间,对于程序方便快速,但是自由度小。 ​优点:下标定位,随机访问性强,查找速度快; ​缺点:插入、删除效率低,内存利用率低&…

前端最能打的本地存储方案

产品的原话就是“要又大又全”。既然存储量大,也要覆盖全多种设备多种浏览器。 方案选择 既然要存储的数量大,得排除cookielocalStorage,虽然比cookie多,但是同样有上限(5M)左右,备选websql 使…

SPSS--s04典型相关分析

典型相关基本原理 典型相关分析是主成分分析和因子分析的进一步发展 ,是研究两组变量间的相互依赖关系 ,把两组变量之间的相互关系变为研究两个新的变量之间的相关,而且又不抛弃原来变量的信息 ,这两个新的变量分别由第一组变量和第二组变量的线性组合构成 ,并且两组变量的个数…

以太网POE供电浪涌静电防护推荐TVS二极管

POE是一种传输技术,可在以太网电缆上传输电力和数据。1000M千兆以太网POE供电端口广泛用于安防、视频监控以及智能电网等工业系统,以实现系统内的数据、视频传输、流量控制、以及通过总线实现供电。由于工业以太网工作环境非常严酷苛刻,对于以…

Java不重启服务 扩展新支付功能demo

应用场景 对于支付:经常有些需求,需要我们扩展新的支付方式,但又不希望重启服务对于IOT:经常需要新增一些解析数据的Handler 那我们如何能做到不重启服务,就能扩展新功能呢?本文给一个简单的demo示例&…

无涯教程-Android - AutoCompleteTextView函数

AutoCompleteTextView是一个类似于EditText的视图,只是它在用户键入时自动显示补充数据。 AutoCompleteTextView - 属性 以下是与AutoCompleteTextView控件相关的重要属性。您可以查看Android官方文档以获取属性的完整列表以及可以在运行时更改这些属性的相关方法。…

循环冗余校验码(CRC校验)

CRC在线计算 CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能&#xf…

会员管理系统实战开发教程06-会员充值

我们上篇讲解了会员开卡的操作,有了会员卡之后日常就是给会员进行充值,充值的逻辑是对余额进行累加,而且要记录充值的情况。 1 创建充值记录表 打开控制台,点击号创建数据源 输入数据源名称充值记录 点击编辑添加字段 先添加…

three.js(八):内置的三维几何体

三维几何体 BoxGeometry 立方体TetrahedronGeometry 四面体OctahedronGeometry 八面体DodecahedronGeometry 十二面体IcosahedronGeometry 二十面体PolyhedronGeometry 多面体SphereGeometry 球体ConeGeometry 圆锥CylinderGeometry 圆柱TorusGeometry 三维圆环TorusKnotGeomet…

部署你自己的导航站-dashy

现在每天要访问的网页都太多了,尽管chrome非常好用,有强大的标签系统。但是总觉的少了点什么。 今天我就来分享一个开源的导航网站系统 dashy。这是一个国外的大佬的开源项目 github地址如下:https://github.com/Lissy93/dashy 来简单说一下…

LabVIEW开发同步磁阻电机匝间短路故障在线诊断技术

LabVIEW开发同步磁阻电机匝间短路故障在线诊断技术 近年来,电动驾驶系统取得了实质性的改进,不仅在工业自动化和机器人技术中实施,而且在运输和风力发电中实施。自动化系统和其他执行器的典型要求包括:小尺寸、低重量、低成本、高…

【ES6】JavaScript 中的数组方法reduce

reduce() 是一个 JavaScript 中的数组方法&#xff0c;它会对数组的每个元素执行一个提供的 reducer 函数&#xff0c;将其减少到一个单一的值。 这是 reduce() 的基本用法&#xff1a; //(method) Array<number>.reduce(callbackfn: (previousValue: number, currentV…

如何在Windows / Mac / iPhone / Android / Online上将MP4转换为MP3

如果只想保留MP4视频的音频轨道&#xff0c;则可以将MP4转换为MP3格式。 MP3是几乎所有设备&#xff0c;播放器和编辑器都支持的数字音频格式。无论您将MP4视频转换为MP3音频以进行脱机播放或进一步编辑&#xff0c;都可以提取音轨并保存为MP3格式。这是在不损失质量的情况下将…

浅析Linux虚拟网络技术

文章目录 概述Tap/tun设备tun/tap的工作机制 Bridge网桥Bridge的工作机制Bridge IP 相关参考 概述 在传统的网络环境中&#xff0c;一台物理主机包含一张或多张网卡&#xff0c;要实现与其它物理主机之间的通信&#xff0c;需要将自身的网卡通过路由器或者交换机连接到外部的物…

解决gitee仓库中 .git 文件夹过大的问题

最近&#xff0c;许多项目都迁移到gitee。使用的也越来越频繁&#xff0c;但是今天突然收到一个仓库爆满的提示。让我一脸懵逼。本文将详细为你解答&#xff0c;这种情况如何处理。 1、起因 我收到的报错如下&#xff1a; remote: Powered by GITEE.COM [GNK-6.4] remote: T…

Docker - Docker安装MySql并启动

因为项目需要连接数据库&#xff0c;但是远程服务器上的mysql我不知道账户和密码&#xff0c;这个时候便是docker发挥作用的关键时刻了&#xff01; 目录 docker安装安装gcc卸载老docker&#xff08;如有&#xff09;安装软件包设置镜像仓库更新yum软件包索引安装docker启动doc…

园区能源管理系统是什么

园区能耗监测系统是可以用电力电气技术性、物联网、电子信息技术、通讯技术相当于一身&#xff0c;可以对当场里的能耗数据信息完成数据收集、存储、剖析、大屏幕呈现、分享等多种功能&#xff0c;可以为政府部门进行环保节能方式及其能源数据统计分析、预警信息、预测等&#…

04、添加 com.fasterxml.jackson.dataformat -- jackson-dataformat-xml 依赖报错

Correct the classpath of your application so that it contains a single, compatible version of com.fasterxml.jackson.dataformat.xml.XmlMapper 解决&#xff1a; 改用其他版本&#xff0c;我没写版本号&#xff0c;springboot自己默认的是 2.11.4 版本 成功启动项目…

黑马点评环境搭建导入

一开始配置maven的时候&#xff0c;发现怎么都无法查看maven的版本&#xff0c;后来才知道是JAVA_HOME的问题&#xff0c;开头多了一个空格&#xff08;因为我是直接复制过去的&#xff09;&#xff0c;然后搜网上通过命令行可以看到肉眼看不到的bug。 通过命令行的方式改正确后…

器件手册识读之 :运放

器件手册识读之 &#xff1a;运放 一、基本信息 二、引脚排列 三、最大额定参数 四、电气特性 五、应用电路 1、称重传感器放大器 2、热电偶低偏置&#xff0c;低漂移环路测量二极管冷端补偿。