日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

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

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

如下所示:

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

這個需求針對用戶上傳手機拍攝照片等不便修改圖片大小的情況,我們允許上傳10M以內的圖片由前端對圖片進行壓縮再傳給后臺存儲,結合elementUI的el-upload組件實現圖片上傳功能(簡單來說就是用戶是老大)

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

/** 圖片壓縮,默認同比例壓縮 * @param {Object} fileObj * 圖片對象 * 回調函數有一個參數,base64的字符串數據 */export function compress(fileObj, callback) { try { const image = new Image() image.src = URL.createObjectURL(fileObj) image.onload = function() { const that = this // 默認按比例壓縮 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 // 默認圖片質量為0.7 // 生成canvas const canvas = document.createElement(’canvas’) const ctx = canvas.getContext(’2d’) // 創建屬性節點 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) // 圖像質量 if (fileObj.quality && fileObj.quality <= 1 && fileObj.quality > 0) { quality = fileObj.quality } // quality值越小,所繪制出的圖像越模糊 const data = canvas.toDataURL(’image/jpeg’, quality) // 壓縮完成執行回調 const newFile = convertBase64UrlToBlob(data) callback(newFile) } } catch (e) { console.log(’壓縮失敗!’) }}function convertBase64UrlToBlob(urlData) { const bytes = window.atob(urlData.split(’,’)[1]) // 去掉url的頭,并轉換為byte // 處理異常,將ascii碼小于0的轉換為大于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://m.b3g6.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'>上傳實景圖</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>上傳樓宇實景圖</p> <p>支持:.jpg .png .gif格式 建議比例:16:9,小于10M</p> </div> </el-upload></el-form-item>

3、主要在handlePictureCardPreview方法里調用壓縮方法

先在當前vue頁面import公共js文件

import { compress } from ’@/utils’

然后

// 圖片預覽handlePictureCardPreview(file) { const _that = this const isLt10M = file.size / 1024 / 1024 < 10 if (!isLt10M) { this.$message.error(’上傳圖片大小不能超過 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

這樣只要上傳圖片就進行圖片壓縮

補充知識:element upload限制上傳圖片尺寸、大小、比例

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

// 上傳前判斷 public async beforeUpload(file: any) { const is1M = file.size / 1024 / 1024 < 3; // 限制小于3M if (!is1M) { this.$message.error(’圖片尺寸限制最小為270 x 270,大小不可超過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,大小不可超過3MB,比例為1:1’); return Promise.reject();}, ); return isSize; } }

看了很多還不如自己擼一個

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

標簽: Vue
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩中文一区二区| 欧美va天堂| 亚洲欧美久久精品| 最新亚洲国产| 久久国产精品免费一区二区三区| 欧美一级二区| 亚洲一区二区三区高清不卡| 国产精品人人爽人人做我的可爱| 亚洲二区在线| 一区二区日韩免费看| 国产日韩一区二区三区在线| 精品免费视频| 精品一区在线| 色8久久久久| 六月丁香综合在线视频| 四虎884aa成人精品最新| 国产精品免费看| 国产精品久久久久久久久久白浆 | 日韩精品成人| 国产欧美91| 日韩在线短视频| 久色成人在线| 欧美极品中文字幕| 婷婷亚洲五月| 国产精品伊人| 蜜桃一区二区三区| 国产亚洲一卡2卡3卡4卡新区| 欧美亚洲一区二区三区| 成年男女免费视频网站不卡| 午夜在线观看免费一区| 国产精品视频首页| 欧美成人高清| 国产欧美日韩一级| 久久中文亚洲字幕| 国产欧美另类| 女人av一区| 欧美另类中文字幕 | 亚洲精品免费观看| 手机在线电影一区| 亚洲精品午夜av福利久久蜜桃| 91久久精品无嫩草影院| 亚洲福利国产| 国产一区二区三区四区五区 | 国产精品人人爽人人做我的可爱| 国产精品久久久久毛片大屁完整版| 99久久久久| 国产精品片aa在线观看| 国产精品腿扒开做爽爽爽挤奶网站| 久久av偷拍| 亚洲精选成人| 亚洲va在线| 免费日韩成人| 蜜桃伊人久久| 91亚洲国产成人久久精品| 亚洲精品看片| 欧美日韩一区二区综合 | 天堂成人国产精品一区| 电影91久久久| 91精品国产自产观看在线| 午夜欧美理论片| 欧美日韩国产v| 久久精品国产在热久久| 在线观看一区| 中文欧美日韩| 午夜精品久久久久久久久久蜜桃| 日韩高清在线不卡| 亚洲免费在线| 日韩午夜av在线| 婷婷成人综合| 日韩国产欧美一区二区| 国产一区二区三区四区二区| 国产精品黄色片| 欧美一区自拍| 欧美一区91| 亚洲免费资源| 亚洲免费成人av在线| 99在线精品视频在线观看| 亚洲一级网站| 欧美亚洲精品在线| 久久国产欧美| 成人欧美一区二区三区的电影| 国产日韩高清一区二区三区在线| 日韩久久一区| 日本aⅴ精品一区二区三区 | 99久精品视频在线观看视频| 天堂中文av在线资源库 | 亚洲精品永久免费视频| 精品欧美日韩精品| 麻豆久久久久久| 久久爱www.| 美女视频网站久久| 欧美91在线| 蜜桃久久久久| 国精品产品一区| 黄色网一区二区| 超碰99在线| 日韩欧美中文| 91精品在线观看国产| 亚洲福利专区| 亚洲在线国产日韩欧美| 蜜乳av另类精品一区二区| 蜜臀91精品一区二区三区| 日韩精品一卡二卡三卡四卡无卡| 免费观看在线色综合| 亚洲日本久久| 国产伦精品一区二区三区千人斩| 国产福利资源一区| 精品日本视频| 日韩精品一区二区三区免费观影| 四虎影视精品| 妖精视频成人观看www| 蜜芽一区二区三区| 久久国内精品自在自线400部| 久久丁香四色| 日韩大片在线播放| 欧美日韩国产在线观看网站| 久久福利一区| 91av一区| 深夜福利视频一区二区| 亚洲精品91| 日韩精品视频在线看| 国产乱码精品一区二区亚洲| 精品中文在线| 激情综合激情| 婷婷精品在线| 日韩不卡一区| 国产视频亚洲| 国产精品久久久久久妇女 | 国产精品二区不卡| 欧洲激情综合| 日本aⅴ免费视频一区二区三区| 麻豆精品av| 午夜精品亚洲| 国产精品久久久久毛片大屁完整版 | 欧美交a欧美精品喷水| 日韩成人高清| 日韩免费精品| 蜜桃精品在线| 综合一区av| 中文字幕人成乱码在线观看 | 精品视频自拍| 男女精品网站| 精品国产一区二区三区性色av| 欧美一区二区三区激情视频 | 国产综合精品| 国产精品片aa在线观看| 亚洲福利免费| 国产精品传媒麻豆hd| 欧美精品一卡| 里番精品3d一二三区| 野花国产精品入口| 精品中文在线| 亚洲aⅴ网站| 国产精品久久久久av电视剧| 日韩精品国产欧美| 亚洲h色精品| 久久精品国产网站| 蜜桃久久av一区| 福利在线免费视频| 日本成人在线不卡视频| 久久一级电影| 精品一区二区三区中文字幕在线| 视频在线观看91| 日韩成人高清| 精品高清久久| 日本a口亚洲| 亚洲大全视频| 日韩av在线播放网址| 日本欧美一区二区在线观看| 免费国产自久久久久三四区久久 | 亚洲精品字幕| 欧美jjzz| 日韩免费av| 精品三级av| 国产欧美啪啪| 日本不卡高清视频| 亚洲一区激情| 激情丁香综合| 麻豆视频在线看| 精品国产一区二区三区2021| 日韩精品a在线观看91| 亚洲欧美日韩一区在线观看| 91精品啪在线观看国产18| 国产精品精品| 久久久久久色| 国产婷婷精品| 99成人在线视频| 99视频精品全国免费| 免费福利视频一区二区三区| 久久精品国产久精国产爱| 国产探花在线精品一区二区| 亚洲一区二区三区四区电影| 日韩网站在线| 亚洲国产成人精品女人| 欧美 日韩 国产一区二区在线视频 | 国产一区二区三区免费在线| 午夜天堂精品久久久久| 视频一区视频二区中文字幕| 国产亚洲高清视频| 香蕉久久国产|