亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue如何通過image-conversion實現圖片壓縮詳解

 更新時間:2024年12月09日 09:19:45   作者:葉子_o  
在Vue項目中上傳大圖片時,可以通過image-conversion庫壓縮至指定大小,這篇文章主要介紹了vue如何通過image-conversion實現圖片壓縮的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

簡介

vue項目中,上傳圖片時如果圖片很大,通過 image-conversion 壓縮到指定大小

1. 安裝依賴

npm i image-conversion --save

2. 引用

import * as imageConversion from 'image-conversion'

3. 使用

const newFile = new Promise((resolve) => {
	// 壓縮到500KB,這里的500就是要壓縮的大小,可自定義
	imageConversion.compressAccurately(file, 500).then(res => {
	  resolve(res)
	}).finally(() => {
	  console.log('將圖片文件壓縮到了500kb')
	})
})

4. 實際場景應用

<!--  上傳按鈕  -->
<el-upload
  action=""
  class="upload"
  multiple
  accept=".png, .jpg, .jpeg"
  :before-upload="beforeDocumentUpload"
  :http-request="beforeAvatarUpload"
  :on-preview="handlePictureCardPreview"
  :before-remove="handlerBeforeRemove"
  :file-list="pictureList"
  :limit="10"
  :on-exceed="handleExceed"
  list-type="picture-card"
>
  <i class="el-icon-plus" />
</el-upload>
<!--  預覽大圖 -->
<el-dialog :visible.sync="imgVisible" :append-to-body="true">
  <img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>

methods:

methods: {
	// 上傳前
    beforeDocumentUpload(file) {
      const size = file.size / 1024 / 1024
		
	  // 上傳的圖片大小不能超過10M
      if (size > 10) {
        this.$message.warning('文件大小不能超過10M!')
        return false
      }
      const extension = this.getFileType(file)
		
	  // 只支持 png, jpg, jpeg 格式
      if (!['png', 'jpg', 'jpeg'].includes(extension)) {
        this.$message.warning('只能上傳png、jpg、jpeg格式文件!')
        return false
      }
      
      // 大于0.5M壓縮成0.5M
      if (size > 0.5) {
        const loading = this.$loading({
          lock: true,
          text: '加載中'
        })
        // 壓縮
        const newFile = new Promise((resolve) => {
          // 壓縮到500KB,這里的500就是要壓縮的大小,可自定義
          imageConversion.compressAccurately(file, 500).then(res => {
            resolve(res)
          }).finally(() => {
            loading.close()
          })
        })
        console.log('newFIle', newFile)
        return newFile
      }
      return true
    },
    // 上傳
    beforeAvatarUpload(file) {
      const self = this
      const reader = new FileReader()
      reader.readAsDataURL(file.file)
      reader.onload = function(e) {
        // const img_base64 = e.target.result
        // 自定義數組對象,傳給后臺的數據
        self.imgBase64Array.push({
          uid: file.file.uid,
          base64Str: file
          // base64Str: img_base64
        })
      }
    },
    // 預覽大圖
	handlePictureCardPreview(file) {
	  this.dialogImageUrl = file.url
	  this.imgVisible = true
	},
	// 刪除圖片
    handlerBeforeRemove(file, fileList) {
      this.imgBase64Array = this.imgBase64Array.filter((p) => p.uid !== file.uid)
    },
    handleExceed() {
      this.$message.warning('圖片數量最多為10張')
    },
},

總結 

到此這篇關于vue如何通過image-conversion實現圖片壓縮的文章就介紹到這了,更多相關vue image-conversion實現圖片壓縮內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue ECharts直角坐標系配置詳細講解

    Vue ECharts直角坐標系配置詳細講解

    數據的重要性我們大家都知道,就算再小的項目中都可能使用幾個圖表展示,我最近在做項目的過程中也是需要用到圖表,最后選擇了echarts圖表庫
    2022-12-12
  • KKFileView結合vue多格式文件在線預覽功能實現

    KKFileView結合vue多格式文件在線預覽功能實現

    kkFileView是git的開源在線文件預覽項目,這篇文章主要介紹了KKFileView結合vue多格式文件在線預覽功能,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • vue中{{}},v-text和v-html區(qū)別與應用詳解

    vue中{{}},v-text和v-html區(qū)別與應用詳解

    這篇文章主要介紹了vue中{{}},v-text和v-html區(qū)別與應用詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-09-09
  • Vue實現計數器案例

    Vue實現計數器案例

    這篇文章主要為大家詳細介紹了Vue計數器案例的實現方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • vue3使用vuedraggable和grid實現自定義拖拽布局方式

    vue3使用vuedraggable和grid實現自定義拖拽布局方式

    這篇文章主要介紹了vue3使用vuedraggable和grid實現自定義拖拽布局方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue2.0 element-ui中el-select選擇器無法顯示選中的內容(解決方法)

    vue2.0 element-ui中el-select選擇器無法顯示選中的內容(解決方法)

    這篇文章主要介紹了vue2.0 element-ui中的el-select選擇器無法顯示選中的內容,在文中小編使用的是element-ui V2.2.3。具體解決方法及示例代碼大家參考下本文
    2018-08-08
  • Vue?echarts實例項目商家銷量統(tǒng)計圖實現詳解

    Vue?echarts實例項目商家銷量統(tǒng)計圖實現詳解

    Echarts,它是一個與框架無關的?JS?圖表庫,但是它基于Js,這樣很多框架都能使用它,例如Vue,估計IONIC也能用,因為我的習慣,每次新嘗試做一個功能的時候,總要新創(chuàng)建個小項目,做做Demo
    2022-09-09
  • Vue中通過vue-router實現命名視圖的問題

    Vue中通過vue-router實現命名視圖的問題

    這篇文章主要介紹了在Vue中通過vue-router實現命名視圖,本文給大家提到了vue-router的原理解析,給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Vue中使用crypto-js AES對稱加密算法實現加密解密

    Vue中使用crypto-js AES對稱加密算法實現加密解密

    ?在數字加密算法中,通過可劃分為對稱加密和非對稱加密,本文主要介紹了Vue中使用crypto-js AES對稱加密算法實現加密解密,文中根據實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue使用Font Awesome的方法步驟

    vue使用Font Awesome的方法步驟

    這篇文章主要介紹了vue使用Font Awesome的方法步驟,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02

最新評論