vue上传图片自动压缩,vue 压缩图片

  vue上传图片自动压缩,vue 压缩图片

  这篇文章主要介绍了某视频剪辑软件在图片上传的时候压缩图片,帮助大家缓解服务器压力,提高程序性能,感兴趣的朋友可以了解下

  需求:

  上传到服务器的图片太大会导致服务器承受不了,故在前端传图片的时候将图片压缩后再传到服务器

  直接上代码

  异步getRealName(){

  让nickname=this.nickname.trim()

  让idnum=this.idnum.trim()

  let nameReg=/[\u4e00-\u9fa5]/gm

  let idnumReg=/^[a-z0-9] $/i

  设郑1=文档。getelementbyid(“文件1”).文件[0]

  设风扇1=文档。getelementbyid(“文件2”).文件[0]

  如果(昵称。长度1) {

  回敬吐司(请输入姓名)

  }

  if(idnum.length 1) {

  回敬吐司(请输入身份证号码)

  }

  如果(!郑1) {

  回敬吐司(请上传身份证信息页)

  }

  如果(!fan1) {

  回敬吐司(请上传身份证国徽页)

  }

  if(zheng1.size/1024 1025) {

  这个。img压缩(郑1,{质量:0.2},郑)

  }否则{

  这个。郑=郑一

  }

  if(fan1.size/1024 1025) {

  这个。img压缩(风扇1,{质量:0.2},“风扇”)

  }否则{

  this.fan=fan1

  }

  setTimeout(()={

  让数据=新表单数据()

  数据追加(昵称,昵称);//添加形式表单中其他数据

  data.append(idnum ,idnum)

  数据追加(郑,这个。郑,郑1 .姓名)

  data.append(fan ,this.fan,fan1.name)

  让API auth=本地存储。getitem( API auth )

  让配置={

  标头:{ Content-Type : multipart/form-data },

  牧民:{apiauth:apiauth}

  }

  axios。邮政( http://API 139。ys11。IPF西科。com/index/index/real name ,data,config).然后((res)={

  Toast(res.data.msg)

  if(res.data.code==1) {

  这个1000美元路由器。替换({路径:/msite })

  }

  })

  },1000)

  },

  //图片压缩

  imgCompress(路径,对象,状态){

  let _this=this //这里的这是把某视频剪辑软件的实例对象指向改变为_这个

  var img=new Image();

  if(状态==郑){

  img。src=_ this。阿凡达1;

  }否则{

  img.src=_this.avatar2

  }

  img.onload=function(){

  var that=this//这里的这是把图片的对象指向改变为那

  //默认按比例压缩

  var w=宽度,

  h=高度,

  比例=宽/高;

  w=对象宽度 w

  h=obj。height (w/scale);

  定义变量质量=0.7;//默认图片质量为0.7

  //生成帆布

  var canvas=文档。createelement(“canvas”);

  var CTX=画布。获取上下文(“2d”);

  //创建属性节点

  var anw=文档。创建属性(“宽度”);

  anw。nodevalue=w;

  var Anh=文档。创建属性(“高度”);

  安。nodevalue=h;

  画布。setattributenode(anw);

  画布。setattributenode(Anh);

  ctx.drawImage(即,0,0,w,h);

  //图像质量

  如果(obj。质量。质量=1对象。质量0){

  质量=物体质量

  }

  //质量值越小,所绘制出的图像越模糊

  var base64=画布。toda taurl( image/JPEG ,质量);

  //回调函数返回base64的值

  var URL file=_ this。转换base 64 urltoblob(base64)//这个地方的处理是为了把压缩的base64转化为对象,获得压缩后图片的大小尺寸,方便对压缩后的图片再次进行判断;

  //console.log(urlFile)

  让file=_ this。blobtofile(URL文件,路径名)

  console.log(文件)

  if(状态==郑){

  _this.zheng=file

  }否则{

  _this.fan=file

  }

  if(urlFile.size/1024 1025){

  吐司(图片过大,请重新上传图片)

  }

  }

  },

  转换base 64 urltoblob(URL数据){

  var arr=urlData.split(,),mime=arr[0].匹配(/:(。*?);/)[1],

  bstr=atob(arr[1]),n=bstr.length,u8 arr=new uint 8 array(n);

  while(n - ){

  u8arr[n]=bstr。charcodeat(n);

  }

  返回新的Blob([u8arr],{ type:mime });

  },

  blobToFile(theBlob,fileName){

  那个斑点。lastmodifieddate=new Date();

  theBlob.name=fileName

  返回斑点;

  },

  更改图像(e) {

  console.log(e.target.files)

  if(e.target.files[0]){

  this.ownImg=false

  var file=e . target。文件[0];

  console.log(文件)

  让filemaxsize=4096

  让size=file.size/1024

  if (size filemaxsize){

  吐司(您上传的图片过大,请重新选择)

  this.disabled=true

  this.formatImg=false

  返回错误的

  }

  var name=file.name

  定义变量文件类型=[。jpg , .png ];

  如果(姓名){

  var isNext=false

  var fileEnd=name。子串(名称。(“.”的索引)));

  for(var I=0;我文件类型。长度;i ) {

  如果(文件类型[我]==文件结束){

  console.log(文件类型[我])

  isNext=true

  this.disabled=false

  this.formatImg=true

  打破;

  }

  }

  如果(!isNext){

  吐司(暂不支持该类型图片);

  名称="";

  this.disabled=true

  this.formatImg=false

  返回错误的

  }

  }

  var reader=new FileReader()

  变那个=这个

  var图像=新图像()

  reader.readAsDataURL(文件)

  reader.onload=函数(e) {

  that.avatar1=this.result

  }

  }

  },

  变更(事件){

  var file=event.target.files[0]

  var name=file.name

  定义变量文件类型=[。jpg , .png ];

  如果(姓名){

  var isNext=false

  var fileEnd=name。子串(名称。(“.”的索引)));

  for(var I=0;我文件类型。长度;i ) {

  如果(文件类型[我]==文件结束){

  console.log(文件类型[我])

  isNext=true

  this.disabled=false

  this.formatImg=true

  打破;

  }

  }

  如果(!isNext){

  吐司(暂不支持该类型图片);

  名称="";

  this.disabled=true

  this.formatImg=false

  返回错误的

  }

  }

  var reader=new FileReader()

  变那个=这个

  reader.readAsDataURL(文件)

  reader.onload=函数(事件){

  that.avatar2=this.result

  }

  }

  以上就是某视频剪辑软件在图片上传的时候压缩图片的详细内容,更多关于某视频剪辑软件压缩图片的资料请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: