婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > html5使用canvas壓縮圖片的示例代碼

html5使用canvas壓縮圖片的示例代碼

熱門標簽:ok電銷機器人 智能電銷機器人被禁用了么 惡搞電話機器人 欣鼎電銷機器人 效果 地圖標注軟件打印出來 電話機器人技術 如何查看地圖標注 黃石ai電銷機器人呼叫中心 高德地圖標注商戶怎么標

前倆天做了一個圖片轉base64上傳的功能,發現如果圖片的base64過大的話,請求會變的很慢,嚴重的直接超時了,所以想到了在上傳前壓縮一下圖片,然后再上傳到后臺,這樣可以大大的提高效率,在這里記錄一下利用 canvas 壓縮圖片遇到的幾個坑。完整代碼會在文末給出。

第一個坑,在壓縮圖片的時候沒獲取圖片本身的寬高,給了一個 600*480 的定寬定高,因為是手機端的,在上傳圖片的時候都是幾兆的圖片,所以這塊沒任何問題。出問題的地方在 修改頭像的時候,測試的時候上傳的圖片都是小圖片,然后就出現了 壓縮后的圖片顯示不完全,大部分都是空白的現象,這就是因為在壓縮的時候沒有考慮圖片原本的寬高的情況。

第二個坑,解決第一個坑的辦法就是在圖片加載完成后(onload),獲取圖片本身的寬高,然后賦值給 canvas ,這樣進行操作,但是這有個坑就是,圖片加載是異步的,在你 return 的時候,返回的可能是 undefined 而不是你需要的 壓縮后的 base64。這里的解決方法是,新建一個 Promise ,然后把結果 resolve() 返回去,在調用的時候 .then() 得到結果。

知識點:

  • canvas 的 toDataURL('image/png', 0.9) ; 把 canvas 畫的圖片轉換為 base64,第一個參數表示的是圖片的類型,第二個參數表示的是圖片的清晰度。
  • 規定一個最大尺寸,如果圖片本身的寬高大于這個尺寸,按照最大的一個邊進行縮放,另一個根據圖片的 比例 進行設置,然后設置給 canvas .

miniImage.js

export default async function miniSize(imgData, maxSize = 200*1024){
    // const maxSize = 200 * 1024;

    if(imgData && imgData.files && imgData.files.size < maxSize) {
        return imgData.url;
    }else{
      console.log('----------------壓縮圖片-------------------');
      const canvas = document.createElement('canvas');
      let img = new Image();
      img.src = imgData.url;
      let ctx = canvas.getContext('2d');
      return new Promise((resolve =>{
        img.addEventListener('load', function(){
          //圖片原始尺寸
          let originWidth = this.width;
          let originHeight = this.height;
          // 最大尺寸限制
          let maxWidth = 400, maxHeight = 400;
          // 目標尺寸
          let targetWidth = originWidth, targetHeight = originHeight;
          // 圖片尺寸超過400x400的限制
          if (originWidth > maxWidth || originHeight > maxHeight) {
            if (originWidth / originHeight > maxWidth / maxHeight) {
              // 更寬,按照寬度限定尺寸
              targetWidth = maxWidth;
              targetHeight = Math.round(maxWidth * (originHeight / originWidth));
            } else {
              targetHeight = maxHeight;
              targetWidth = Math.round(maxHeight * (originWidth / originHeight));
            }
          }
          canvas.width = targetWidth;
          canvas.height = targetHeight;
          ctx.drawImage(img, 0, 0, targetWidth, targetHeight);
          let base64 = canvas.toDataURL('image/png', 0.9);
          resolve(base64);
        }, false);
      }))
    }
}

調用:

test.js

onChangeImg = async (files, type, index) => {
    let previous = this.props.imagePicker.files;
    if(type === "add") {
      let result = miniSize(files[files.length-1]);
      //使用 .then() 調用獲得結果
      await result.then(res => {
         previous.push({url: res});
      });
    }else if(type === "remove") {
        previous.splice(index,1);
    }
    await this.props.dispatch({
      type: 'imagePicker/saveImage',
      payload: {
        files: previous
      }
    })
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:綏化 阿壩 盤錦 萍鄉 赤峰 聊城 中山 金昌

巨人網絡通訊聲明:本文標題《html5使用canvas壓縮圖片的示例代碼》,本文關鍵詞  html5,使用,canvas,壓縮,圖片,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《html5使用canvas壓縮圖片的示例代碼》相關的同類信息!
  • 本頁收集關于html5使用canvas壓縮圖片的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品少妇一区二区三区在线视频| 久久蜜桃一区二区| 国产精品中文字幕欧美| 日韩中文字幕亚洲一区二区va在线| 日韩一区中文字幕| 国产精品欧美精品| 18欧美乱大交hd1984| 中文一区二区在线观看| 中文字幕不卡的av| 亚洲欧洲日韩av| 国产精品电影一区二区| 《视频一区视频二区| 国产精品麻豆久久久| 99久久久国产精品免费蜜臀| 日韩欧美一区二区免费| 欧美精品第1页| 欧美精品第1页| 欧美精品一区二区三区视频| 2021久久国产精品不只是精品| 精品国产乱子伦一区| 久久久美女毛片| 国产精品国产三级国产普通话蜜臀 | 国产亚洲成av人在线观看导航| 在线观看日产精品| 日本不卡一区二区三区高清视频| 亚洲精品国久久99热| 亚洲福利一二三区| 精品一区二区三区久久| 成人动漫一区二区| 午夜影院在线观看欧美| 日本一道高清亚洲日美韩| 美女视频黄 久久| 国产成人无遮挡在线视频| av在线播放不卡| 国产精品一卡二卡在线观看| 麻豆精品国产传媒mv男同| 国产精品一区不卡| 欧美日韩中文国产| 久久综合色之久久综合| 国产精品久久久久7777按摩| 日日夜夜精品视频免费| 国产高清不卡一区| 欧美人与性动xxxx| 国产欧美一区二区精品性 | 久久久久国产精品人| 亚洲色欲色欲www| 免费观看在线色综合| 成人综合婷婷国产精品久久 | 91麻豆产精品久久久久久| 制服丝袜亚洲播放| 亚洲丝袜另类动漫二区| 久久 天天综合| 欧美浪妇xxxx高跟鞋交| 亚洲人成伊人成综合网小说| 麻豆精品视频在线观看免费 | 日韩欧美在线不卡| 亚洲一区视频在线观看视频| 成人一级片网址| 久久精品水蜜桃av综合天堂| 午夜精品福利一区二区蜜股av| 岛国精品一区二区| 久久精品一区二区三区不卡牛牛| 午夜精品福利视频网站| 欧美系列日韩一区| 一区二区三区加勒比av| 91在线精品一区二区| 国产精品灌醉下药二区| 成人影视亚洲图片在线| 国产午夜精品美女毛片视频| 国产精品一级在线| 国产日韩欧美亚洲| 国产精品88888| 国产亚洲欧美激情| 国产乱淫av一区二区三区| 精品成人私密视频| 国产一区二区三区精品视频| 精品国产露脸精彩对白 | 91美女在线观看| 亚洲人一二三区| 在线精品观看国产| 午夜成人免费视频| 日韩精品一区二区三区四区| 麻豆成人av在线| 国产三级一区二区| 成人午夜大片免费观看| 中文字幕高清不卡| 色噜噜夜夜夜综合网| 亚洲在线免费播放| 欧美一区二区三区免费观看视频 | 亚洲日本在线看| 欧美巨大另类极品videosbest | 五月天国产精品| 日韩欧美亚洲国产另类| 国内成人精品2018免费看| 久久欧美中文字幕| av电影在线观看一区| 亚洲一区二区三区爽爽爽爽爽| 欧美人牲a欧美精品| 国内精品久久久久影院薰衣草 | 久久国产成人午夜av影院| 久久久久久久久久久黄色| 91啪亚洲精品| 久久久不卡网国产精品二区| 亚洲天堂av一区| 在线一区二区视频| 日韩激情中文字幕| 久久久久久久久久美女| 色婷婷一区二区三区四区| 视频一区二区中文字幕| 久久人人97超碰com| 成人在线综合网站| 日韩av电影免费观看高清完整版| 国产婷婷色一区二区三区 | www.久久久久久久久| 亚洲午夜久久久| 26uuu国产日韩综合| 色88888久久久久久影院野外| 奇米色777欧美一区二区| 国产日产欧美一区| 欧美精品在线一区二区三区| 日韩久久久精品| 久久精品国产亚洲高清剧情介绍| 国产精品成人一区二区艾草| 日韩一区二区电影在线| 91在线国内视频| 国产美女av一区二区三区| 亚洲h动漫在线| 一区二区三区免费看视频| 久久夜色精品一区| 欧美一区二区三区免费视频| 91行情网站电视在线观看高清版| 国产大陆亚洲精品国产| 美腿丝袜在线亚洲一区| 亚洲综合精品久久| 一区二区三区国产精品| 日韩伦理电影网| 国产精品初高中害羞小美女文| 日韩欧美成人一区| 日韩女优电影在线观看| 欧美日韩另类一区| 欧美日韩免费观看一区二区三区 | 精品国产乱码91久久久久久网站| 91精品国产综合久久久久久| 欧洲av在线精品| 一本大道久久a久久精品综合| 97精品国产97久久久久久久久久久久| 国产v日产∨综合v精品视频| 国产麻豆精品在线观看| 国产综合色产在线精品| 裸体健美xxxx欧美裸体表演| 日本人妖一区二区| 美腿丝袜亚洲综合| 国产一区二区视频在线播放| 国产精品91xxx| 国产精品一区二区久久不卡| 福利一区在线观看| jiyouzz国产精品久久| 成人av在线资源网| 色狠狠一区二区| 欧美挠脚心视频网站| 日韩写真欧美这视频| 欧美成人精品福利| 欧美激情一区二区三区四区| 国产精品理伦片| 亚洲综合区在线| 奇米在线7777在线精品| 国产一区啦啦啦在线观看| 成人av电影免费在线播放| 日本久久精品电影| 69久久99精品久久久久婷婷| 欧美不卡123| 亚洲国产高清aⅴ视频| 亚洲一级在线观看| 蜜臂av日日欢夜夜爽一区| 国产不卡免费视频| 欧美性高清videossexo| 精品久久久久久久一区二区蜜臀| 国产人成一区二区三区影院| 亚洲免费在线观看| 日韩精品一二三| 成人久久视频在线观看| 欧美丰满少妇xxxbbb| 国产人成亚洲第一网站在线播放| 亚洲裸体在线观看| 国产自产视频一区二区三区| 日本电影亚洲天堂一区| 日韩精品专区在线影院观看| 国产精品日日摸夜夜摸av| 日韩一区精品视频| 91一区二区在线| 欧美不卡123| 亚洲一区二区3| 成人免费毛片嘿嘿连载视频| 在线精品视频小说1| 2023国产精品自拍| 亚洲超碰精品一区二区| 成人国产精品免费观看动漫| 欧美日韩视频一区二区| 国产精品乱码妇女bbbb| 国产一区激情在线|