成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

vue+elementUI(el-upload)圖片壓縮,默認(rèn)同比例壓縮操作

瀏覽:160日期:2022-12-11 13:33:34

如下所示:

vue+elementUI(el-upload)圖片壓縮,默認(rèn)同比例壓縮操作

這個(gè)需求針對(duì)用戶上傳手機(jī)拍攝照片等不便修改圖片大小的情況,我們?cè)试S上傳10M以內(nèi)的圖片由前端對(duì)圖片進(jìn)行壓縮再傳給后臺(tái)存儲(chǔ),結(jié)合elementUI的el-upload組件實(shí)現(xiàn)圖片上傳功能(簡(jiǎn)單來(lái)說(shuō)就是用戶是老大)

1、提取出壓縮方法,放在公共方法.js文件里

/** 圖片壓縮,默認(rèn)同比例壓縮 * @param {Object} fileObj * 圖片對(duì)象 * 回調(diào)函數(shù)有一個(gè)參數(shù),base64的字符串?dāng)?shù)據(jù) */export function compress(fileObj, callback) { try { const image = new Image() image.src = URL.createObjectURL(fileObj) image.onload = function() { const that = this // 默認(rèn)按比例壓縮 let w = that.width let h = that.height const scale = w / h w = fileObj.width || w h = fileObj.height || (w / scale) let quality = 0.7 // 默認(rèn)圖片質(zhì)量為0.7 // 生成canvas const canvas = document.createElement(’canvas’) const ctx = canvas.getContext(’2d’) // 創(chuàng)建屬性節(jié)點(diǎn) const anw = document.createAttribute(’width’) anw.nodeValue = w const anh = document.createAttribute(’height’) anh.nodeValue = h canvas.setAttributeNode(anw) canvas.setAttributeNode(anh) ctx.drawImage(that, 0, 0, w, h) // 圖像質(zhì)量 if (fileObj.quality && fileObj.quality <= 1 && fileObj.quality > 0) { quality = fileObj.quality } // quality值越小,所繪制出的圖像越模糊 const data = canvas.toDataURL(’image/jpeg’, quality) // 壓縮完成執(zhí)行回調(diào) const newFile = convertBase64UrlToBlob(data) callback(newFile) } } catch (e) { console.log(’壓縮失敗!’) }}function convertBase64UrlToBlob(urlData) { const bytes = window.atob(urlData.split(’,’)[1]) // 去掉url的頭,并轉(zhuǎn)換為byte // 處理異常,將ascii碼小于0的轉(zhuǎn)換為大于0 const ab = new ArrayBuffer(bytes.length) const ia = new Uint8Array(ab) for (let i = 0; i < bytes.length; i++) { ia[i] = bytes.charCodeAt(i) } return new Blob([ab], { type: ’image/png’ })}

2、el-upload上傳組件

<el-form-item ref='uploadElement' prop='picUrl' label-width='0'> <el-upload ref='uploadxls' :disabled='disabled' :auto-upload='false' : action='aaa' ::limit='1' :show-file-list='false' :on-change='handlePictureCardPreview' :before-upload='beforeupload' accept='image/png,image/gif,image/jpg,image/jpeg' > <!--<img v-if='dialogImageUrl' :src='http://www.piao2010.com/bcjs/dialogImageUrl' class='avatar'>--> <i v-if='!dialogImageUrl' /> <!--<i v-show='!dialogImageUrl' /> <div v-show='!dialogImageUrl' slot='tip' class='el-upload__text upload__tip'>上傳實(shí)景圖</div>--> <div v-if='showDelete' class='remove-img'><i @click.stop='removeImg' /></div> <div slot='tip' class='el-upload__tip'> <p><span style='color:#F5222D;'>*</span>上傳樓宇實(shí)景圖</p> <p>支持:.jpg .png .gif格式 建議比例:16:9,小于10M</p> </div> </el-upload></el-form-item>

3、主要在handlePictureCardPreview方法里調(diào)用壓縮方法

先在當(dāng)前vue頁(yè)面import公共js文件

import { compress } from ’@/utils’

然后

// 圖片預(yù)覽handlePictureCardPreview(file) { const _that = this const isLt10M = file.size / 1024 / 1024 < 10 if (!isLt10M) { this.$message.error(’上傳圖片大小不能超過(guò) 10M!’) return false } else { this.dialogImageUrl = URL.createObjectURL(file.raw) compress(file.raw, function(val) { _that.theForm.picUrl = val _that.imgFile = val _that.showDelete = true _that.$refs[’addBuildingForm’].validateField(’picUrl’) }) }}

compress傳入file.raw作為fileObj

這樣只要上傳圖片就進(jìn)行圖片壓縮

補(bǔ)充知識(shí):element upload限制上傳圖片尺寸、大小、比例

我就廢話不多說(shuō)了,大家還是直接看代碼吧~

// 上傳前判斷 public async beforeUpload(file: any) { const is1M = file.size / 1024 / 1024 < 3; // 限制小于3M if (!is1M) { this.$message.error(’圖片尺寸限制最小為270 x 270,大小不可超過(guò)3MB,比例為1:1’); return false; } else { const isSize = new Promise((resolve, reject) => {const width = 270;const height = 270;const _URL = window.URL || window.webkitURL;const img = new Image();img.onload = () => { const valid = img.width >= width && img.height >= height && img.width === img.height; valid ? resolve() : reject();};img.src = _URL.createObjectURL(file); }).then(() => { return file;},() => { this.$message.error(’圖片尺寸限制最小為270 x 270,大小不可超過(guò)3MB,比例為1:1’); return Promise.reject();}, ); return isSize; } }

看了很多還不如自己擼一個(gè)

以上這篇vue+elementUI(el-upload)圖片壓縮,默認(rèn)同比例壓縮操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美成人69av| 色婷婷久久99综合精品jk白丝| 激情综合中文娱乐网| 精品久久久久久无| 国产福利一区二区三区| 337p亚洲精品色噜噜噜| 精品一区二区久久| 91福利在线免费观看| 亚洲h动漫在线| 亚洲免费成人| 亚洲精品ww久久久久久p站| 精品不卡一区| 1024国产精品| 一区在线视频观看| 亚洲图片你懂的| 亚洲日本激情| 日韩伦理av电影| 日韩午夜免费| 一区二区三区中文字幕电影| 亚洲精品视频一区二区三区| 亚洲欧美日韩在线播放| 国产日韩欧美亚洲一区| 亚洲国产中文字幕| 亚洲欧美日韩国产| 手机精品视频在线观看| 久久字幕精品一区| 蜜臀av一级做a爰片久久| 欧美在线播放高清精品| 久久精品国产99久久6| 欧美挠脚心视频网站| 国产成人综合在线| 欧美成人bangbros| 你懂的成人av| 国产精品美女久久久久久久久久久 | 国产精品久久久久三级| 精品动漫av| 亚洲成人av中文| 欧美三级午夜理伦三级中视频| 国产麻豆9l精品三级站| 欧美不卡一区二区三区| 91在线免费播放| 国产精品久久久久影院色老大| 亚洲国产高清一区二区三区| 亚洲r级在线视频| 欧美日韩国产精选| 97se亚洲国产综合自在线不卡| 国产精品视频一二| 国产精品夜夜夜| 麻豆一区二区在线| 日韩视频在线一区二区| 欧美一区二区三区在线免费观看| 一区精品在线播放| 久久久福利视频| 国产精品一区在线观看你懂的| 国产日韩欧美精品一区| 一区二区精品在线观看| 婷婷久久综合九色国产成人| 69堂精品视频| 99re热这里只有精品视频| 亚洲色图视频网| 免费久久99精品国产自| 国产一区视频在线看| 久久久青草青青国产亚洲免观| 亚洲三级国产| 精品一二三四在线| 国产欧美精品一区| 色婷婷精品久久二区二区蜜臀av | 一级日本不卡的影视| 欧美日韩一区三区四区| 成人三级伦理片| 亚洲免费在线视频| 欧美日韩一区三区| 欧美日韩一区二区三区免费| 午夜国产精品影院在线观看| 欧美不卡一区二区三区四区| 在线亚洲免费| 国产美女久久久久| 18欧美亚洲精品| 欧美日韩免费观看一区三区| 欧美高清视频一区| 亚洲国产精品视频| 日韩免费一区二区| 亚洲日本欧美在线| 国产成人在线视频免费播放| 亚洲天堂2016| 欧美精品v国产精品v日韩精品| 欧美人与禽猛交乱配视频| 午夜视频在线观看一区二区| 日韩欧美色电影| 一区二区三区免费看| 国产乱码一区二区三区| 最新中文字幕一区二区三区 | 亚洲视频香蕉人妖| 欧美理论片在线| 91久久久久| 国产在线不卡视频| 一区二区三区四区亚洲| 欧美一区二区福利在线| 影院欧美亚洲| 国产在线精品免费| 亚洲另类春色国产| 欧美白人最猛性xxxxx69交| 亚洲影院免费| 色综合天天综合网天天看片| 美女视频黄免费的久久| 国产精品久久久久久久久久免费看| 精品视频免费在线| 一区精品在线| 国产福利一区二区三区视频 | 久久中文精品| 国产精品国产亚洲精品看不卡15| 久久 天天综合| 亚洲精品国产精品乱码不99 | 巨乳诱惑日韩免费av| 91日韩一区二区三区| 男男gaygay亚洲| 国产精品久久久久久久久图文区| 欧美日韩国产三级| 亚洲一区在线免费| 欧美精品v日韩精品v国产精品| 老司机精品视频在线| 亚洲欧美成人一区二区三区| 精品电影一区二区| 欧美私模裸体表演在线观看| 99综合在线| 欧美在线观看天堂一区二区三区| 久久不见久久见免费视频1| 亚洲宅男天堂在线观看无病毒| 久久一区二区视频| 精品视频一区三区九区| 久久国产88| 一区在线视频观看| 欧美 日韩 国产一区二区在线视频| 国产真实乱对白精彩久久| 天天综合天天做天天综合| 国产精品第一页第二页第三页| 欧美成人三级电影在线| 欧美区一区二区三区| 91国模大尺度私拍在线视频| 国产麻豆综合| 亚洲精品偷拍| 亚洲视频碰碰| 欧美日韩爆操| 91在线免费视频观看| 成人性生交大片免费看在线播放| 久久精品国产99久久6| 亚洲成a人v欧美综合天堂下载| 中文字幕字幕中文在线中不卡视频| 久久久亚洲欧洲日产国码αv| 欧美日本精品一区二区三区| 噜噜噜久久亚洲精品国产品小说| 一区免费视频| 欧美日本不卡高清| 99久久久国产精品免费蜜臀| 国产成人在线看| 九九久久精品视频| 日本午夜精品一区二区三区电影| 亚洲国产视频网站| 亚洲精品视频免费看| 国产精品美女久久久久久久| 欧美国产精品一区| xf在线a精品一区二区视频网站| 91精品国产综合久久蜜臀| 欧美日韩国产一区| 欧美日韩一区二区电影| 91久久精品午夜一区二区| 玖玖视频精品| 91国模大尺度私拍在线视频| 91官网在线观看| 色88888久久久久久影院野外| 性伦欧美刺激片在线观看| 亚洲国产专区| 亚洲高清在线| 激情婷婷欧美| 亚洲精品精选| 国产精品亚洲综合久久| 在线亚洲伦理| 国产乱人伦精品一区二区| 中国女人久久久| 亚洲一区二区三区在线观看视频| 国产日韩一区二区三区| 亚洲永久免费精品| 麻豆成人小视频| 日本久久精品电影| 欧美日韩久久一区二区| 制服丝袜日韩国产| 日韩欧美中文字幕公布| 欧美刺激午夜性久久久久久久| 欧美日韩免费观看一区二区三区| 欧美精品色综合| 日韩一级片在线播放| 欧美sm极限捆绑bd| 欧美精品一区二区高清在线观看 | 蜜臀91精品一区二区三区| 九色综合国产一区二区三区| 国产精品一区二区在线观看不卡| 国产91对白在线观看九色| 不卡视频在线看| 欧美二区不卡| 国产欧美日韩亚洲|