第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

canvas處理圖片后的小疑惑

canvas處理圖片后的小疑惑

慕桂英3389331 2018-12-25 21:15:36
就是一個利用canvas壓縮圖片的小功能,代碼如下:function compressImg(url){    var newimg=document.querySelector('.img');    var dataUrl='';    var size=url.length/1024-url.length/4096;    var scale=500/size;    if(size > 500){        var img = new Image();        img.src=url;        var canvas=document.createElement('canvas');        var ctx=canvas.getContext('2d');        img.onload=function(){            canvas.width=img.width;            canvas.height=img.height;            ctx.drawImage(img,0,0,canvas.width,canvas.height);            dataUrl=canvas.toDataURL('image/jpeg',scale);            //-----在此處可以正常獲取壓縮后的圖片        }    }else{        dataUrl=url    }           //------在此處打印dataUrl為''     newimg.src=dataUrl;}當(dāng)圖片的大小大于500kb時,對圖片進(jìn)行壓縮。在代碼中用了一個變量dataUrl來保存圖片,在實際操作過程中,發(fā)現(xiàn)當(dāng)圖片大于500kb時,得到的dataUrl='',而在img.onload函數(shù)中可以正常獲取dataUrl,這是什么原因呢?為什么已經(jīng)用變量保存了img加載完成的數(shù)據(jù),為什么無法獲取到?
查看完整描述

1 回答

?
www說

TA貢獻(xiàn)1775條經(jīng)驗 獲得超8個贊

img.onload是一個異步方法,所以需要在該方法中獲取dataUrl

function compressImg(url){

    var newimg=document.querySelector('.img');

    var dataUrl='';

    var size=url.length/1024-url.length/4096;

    var scale=500/size;

    if(size > 500){

        var img = new Image();

        img.src=url;

        var canvas=document.createElement('canvas');

        var ctx=canvas.getContext('2d');

        img.onload=function(){

            canvas.width=img.width;

            canvas.height=img.height;

            ctx.drawImage(img,0,0,canvas.width,canvas.height);

            dataUrl=canvas.toDataURL('image/jpeg',scale);

            newimg.src=dataUrl;

        }

    }else{

        newimg.src=url

    }

}


查看完整回答
反對 回復(fù) 2019-01-07
  • 1 回答
  • 0 關(guān)注
  • 428 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號