image-conversion ,vue,element

需求:需要用户上传图片时候,对大尺寸图片进行压缩,减小图片大小,减少服务器的压力。

用到的第三方插件image-conversion

文档: https://www.npmjs.com/package/image-conversion

1.安装
npm i image-conversion --save
2.引入,可以在main.js中全局引入,也可以在组件中引入。

我是在组件中引入的

import * as imageConversion from 'image-conversion'
3.使用,

上传组件使用的 el-upload组件,调用了 :before-upload="beforeAvatarUpload 方法。

压缩是 imageConversion.compressAccurately 这个语句。

<el-uploadclass="upload-demo"action="网址":on-preview="handlePreview":on-remove="handleRemove":on-success="hsuccess":before-remove="beforeRemove":before-upload="beforeAvatarUpload"multiple:limit="3":on-exceed="handleExceed":file-list="fileList"list-type="picture">

//图片上传前,进行图片校验beforeAvatarUpload(file) {// const isJPG = file.type === "image/jpeg/png";const isLt1M = (file.size / 1024 / 1024) * 10 < 6;// if (!isJPG) {//   this.$message.error("上传头像图片只能是 JPG 和 PNG 格式!");// }if (!isLt1M) {this.$message.warning("上传头像图片大小不能超过 600kb! 将进行压缩");let myImg = new Promise((resolve) => {// 压缩到500KB,这里的500就是要压缩的大小,可自定义imageConversion.compressAccurately(file, 500).then((res) => {resolve(res);});});console.log(myImg);return myImg;}return isLt1M;},

若是图片大小超过600kb,就提示用户,图片过大,将对图片进行压缩。然后调用 压缩语句。
执行后,打印结果如图:

这是的 size,单位大小是字节,大小应该是500kb左右。

下载到电脑上以后,大小如图:

PS 图片格式是 PNG的,使用图片压缩的话,会背景透明部分会变成黑色。
其中一个解决思路,把图片透明背景转成白色,再进行压缩。
方法的话,可以参考这篇文章 ,我觉得写的挺好的 image-conversion库压缩png图片背景黑色问题解决 ——前端辣么菜

image-conversion 图片压缩,vue相关推荐

  1. vue图片压缩image-conversion

    vue图片压缩 需求 解决方式 一.安装依赖 二.根据图片URL进行压缩完整代码 1.将图片URL转为转为file 2.页面中使用 三.上传文件时进行压缩 需求 根据图片的URL或者上传图片时将图片进 ...

  2. 移动端图片上传并生成图片(图片上传/图片压缩/图片绘制/Vue纯前端)

    如今用户上传图片,生成图保存分享这些都是h5页面的基操了吧,十分常见,实际操作起来也是满满的技能点,其实也有很多兼容问题的坑. 下面是以vue+elementUI做的一套,有需要的直接拿去- 如果有对 ...

  3. vue 打包时图片压缩

    1.image-webpack-loader 是依赖于 imagemin-pngquant,则必须要按顺序安装 npm install imagemin-pngquant --save-dev npm ...

  4. vue中前端实现图片压缩 file文件

    项目中遇到上传图片需要在前端进行图片压缩,将我的实现思路记录一下.(我已经拿到上传的file文件的前提下) 先创建一个公用的js,这里我的是api.js,里面封装一些常用的方法 将图片压缩的方法写到这 ...

  5. vue lrz图片压缩插件

    vue lrz图片压缩插件 安装 引入 使用 参考网站 安装 npm i lrz -S 引入 // main.js 中引入 import lrz from 'lrz' 使用 methods: {aft ...

  6. vue图片压缩不失真_图片压缩会失真?快试试这几个无损压缩神器。

    前端通常在做网页的时候 会出现图片加载慢的情况 在这里我通常会将图片进行压缩 但是通常情况下 观众会认为 图片压缩会出现失真的现象 在这里我会向大家推荐几款图片压缩的工具 基本上会实现无损压缩 1.T ...

  7. 基于vue + axios + lrz.js 微信端图片压缩上传

    业务场景 微信端项目是基于Vux + Axios构建的,关于图片上传的业务场景有以下几点需求: 1.单张图片上传(如个人头像,实名认证等业务) 2.多张图片上传(如某类工单记录) 3.上传图片时期望能 ...

  8. JS—图片压缩上传(单张)

    *vue+webpack环境,这里的that指到vue实例 <input type="file" name="file" accept="ima ...

  9. 删除vue打包大小限制_压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)...

    问题 由于这次项目是在初学 Vue 之后的第一个正式项目,没有考虑到类似 路由懒加载. 按需加载的问题 ,所以呢,也算是没经验. 到了这些天,项目写得差不多了,准备放到服务器测试,才发现这个问题. 优 ...

最新文章

  1. tiny210V2 Uboot kernel filesystem 烧写和启动
  2. 这位年仅27岁的阿联酋人工智能部长,竟计划2117年火星造城,真是有钱帅气又任性!
  3. 二次元控、视宠如命,95后占主力的女程序员原来这么飒
  4. 空间素材代码_C++大神解读视频捕获程序,VC++基于Directx开发的源代码
  5. linux top 报错 TERM environment variable not set.
  6. 【408预推免复习】计算机组成原理之系统总线
  7. 阿里云云原生应用平台总经理丁宇:“连接、合作、赋能”,携手加速器伙伴助力企业云上创新
  8. 批处理之判断文件是否存在
  9. redis内部数据结构深入浅出
  10. Ubuntu 18.10安装MySql8.0.13
  11. error Infos
  12. Memcached总结
  13. Linux进程之间通信 消息队列
  14. c语言程序设计第四次作业——顺序结构
  15. dj鲜生-34-存档-用户中心地址页重复查询默认地址的优化-利用自定义模型管理器的方法来实现
  16. java单例模式使用及注意事项
  17. PHPThumb处理图片
  18. 拓端tecdat|R语言中基于混合数据抽样(MIDAS)回归的HAR-RV模型预测GDP增长
  19. 小菜鸟一步步打造图书馆外挂之十六:手动启动入口的实现
  20. 笔记:linux中tcp_tw_reuse和tcp_tw_recycle的作用

热门文章

  1. 视觉惯性里程计 VIO
  2. Odoo | 基础 | 初识系统-ORM之字段属性对象Field
  3. 命名----做程序员的基本要求
  4. Navicate报错access violation at address 00000000
  5. 码分多址(CDMA)的本质-正交之美
  6. 八种生物成像技术,你青睐谁?
  7. 125页完整版智慧数据中台解决方案(附PPT全文)
  8. github学生开发者包_2020年GitHub学生开发包指南
  9. 关于eclipse中js文件没有提示代码的解决
  10. 2020一战中科大计算机初复试经验贴