中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用canvas壓縮圖片

發布時間:2020-11-02 11:02:03 來源:億速云 閱讀:224 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關如何使用canvas壓縮圖片,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

使用canvas壓縮圖片的步驟:

1、拿到圖片元素

2、繪制一個空白的canvas

3、將圖片繪制在canvas上

4、將canvas轉成base64(這里調用的方法可以實現壓縮,base64就可以直接放入src或者傳入后端、轉成別的格式傳輸等。)

代碼實現:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
 <img src="test.png" style="width: 200px; height: 400px;" id="imgBefore">
    <img src="" id="imgafter"> //待會壓縮完的圖片放入這里。
</body>
</html>
<script>
    var img = document.getElementById('imgBefore') //拿到圖片元素
    img.setAttribute("crossOrigin",'Anonymous') //這句話并不是必要的,如果你的圖片是一個網絡鏈接,
    //那么canvas繪制時可能會報錯,是因為跨域的安全性問題。報錯時加上就對了。
    img.onload = ()=>{ //要確保圖片已經加載完才進行繪制,不然拿不到圖片元素會繪制出全黑的區域,就是失敗。
        var width = img.width
        var height = img.height
        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');
        canvas.width = width;
        canvas.height = height; //以上幾步都在繪制一個canvas
        ctx.drawImage(img,0,0,width,height);//將圖片繪制進去,這里第一個參數可以接受很多格式,
        //以元素為例子,詳情https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/drawImage
        var base64 = canvas.toDataURL('image/jpeg',0.2); //第二個參數為壓縮的比例,越小越模糊。0-1
        document.getElementById('imgafter').src = base64
    }
        
</script>

效果對比:

壓縮前

如何使用canvas壓縮圖片

壓縮后:

如何使用canvas壓縮圖片

關于如何使用canvas壓縮圖片就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

芦山县| 菏泽市| 镇康县| 怀宁县| 柞水县| 安国市| 全南县| 获嘉县| 平武县| 阿荣旗| 车险| 黔江区| 上高县| 鄱阳县| 墨脱县| 芜湖市| 邢台县| 阜平县| 个旧市| 临桂县| 铜川市| 土默特右旗| 南宁市| 和田县| 金门县| 芦山县| 惠水县| 龙陵县| 淳化县| 巴中市| 沾益县| 金阳县| 湖南省| 华容县| 蓬安县| 红安县| 苍山县| 新巴尔虎左旗| 治县。| 武夷山市| 仪陇县|