欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂HTML5培訓簡述如何利用Canvas實現(xiàn)圖片壓縮

2018-06-28 11:30:58 1191瀏覽

本篇文章扣丁學堂HTML5培訓小編主要和讀者們分享一下如何利用Canvas實現(xiàn)圖片壓縮,因為我們在工作中會經(jīng)常用到該項操作,所以文中會有詳細的代碼列出供大家參考,下面隨小編一起來了解一下吧。



扣丁學堂HTML5培訓簡述如何利用Canvas實現(xiàn)圖片壓縮



一、本地圖片輸入


1、 獲取本地文件


<!--HTML-->
<input type="file" id="choose-img" />
// JS
var chooseImg = document.getElementById("choose-img");
chooseImg.onchange = function(e){
    var file = this.files[0];
    // ……  (省略部分代碼后續(xù)依次展示,下同)
};


很簡單,就是通過type類型為file的按鈕來獲取本地文件。



2、判斷所獲取的本地文件類型


<!--HTML-->
<div id="result"></div>
// JS
var result = document.getElementById("result");    // 用于顯示圖片輸出結果,或者錯誤提示
if(/image/.test(file.type)){     // 判斷文件類型是否為圖片
    // ……
}
else{
    result.innerHTML = '<span style="color: red;">文件類型有誤!</span>';
}



3、將所獲取的本地圖片以base64格式輸出


var img = new Image(),      // 創(chuàng)建圖片對象,用于放置原始圖片
    reader = new FileReader();
reader.readAsDataURL(file);    // 以base64格式讀取并存入FileReader對象的result屬性中
reader.onload = function(){
    img.src = this.result;   // 將圖片base64字符串直接賦予Image對象的src中
    document.body.insertBefore(img,chooseImg);   // 將輸出的圖片插入到文件按鈕之前
    img.onload = function(){
        // ……
    };
};



二、在Canvas畫布中繪制圖片


1、 創(chuàng)建畫布


var canvas = document.createElement('canvas');
canvas.width = img.clientWidth;
canvas.height = img.clientHeight;
var context = canvas.getContext('2d');


注意:畫布大小與所輸入圖片寬高相同。


2、繪制圖片


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



三、壓縮圖片并輸出


<!--HTML-->
圖片壓縮比率 : <input id="rate" type="number" min="0" max="100" /> %
// JS
var rate = document.getElementById("rate").value || 100;   // 輸入圖片壓縮比率,默認為100%
var imgUrl = canvas.toDataURL(file.type,rate/100);   // 第一個參數(shù)為輸出圖片類型,第二個為壓縮比
result.innerHTML = '壓縮后:<img src="'+ imgUrl +'" />';     // 將壓縮后的圖片置于result中顯示
img.style.display = 'none';   // 將原始圖片隱藏


將在Canvas畫布中所繪制的圖片再次以base64格式輸出。



四、完整代碼展示


<!--HTML-->
圖片壓縮比率 : <input id="rate" type="number" min="0" max="100" /> %
<input type="file" id="choose-img" />
<div id="result"></div>
// JS
var chooseImg = document.getElementById("choose-img"),
    result = document.getElementById("result");
chooseImg.onchange = function(e){
    var file = this.files[0];
    if(/image/.test(file.type)){
        var img = new Image(),
            reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = function(){
            img.src = this.result;
            document.body.insertBefore(img,chooseImg);
            img.onload = function(){
                var canvas = document.createElement('canvas');
                canvas.width = img.clientWidth;
                canvas.height = img.clientHeight;
                var context = canvas.getContext('2d');
                context.drawImage(img,0,0,canvas.width,canvas.height);
                var rate = document.getElementById("rate").value || 100;
                var imgUrl = canvas.toDataURL(file.type,rate/100);
                result.innerHTML = '壓縮后:<img src="'+ imgUrl +'" />';
                result.style.display = 'block';
                img.style.display = 'none';
            };
        };
    }
    else{
        result.innerHTML = '<span style="color: red;">文件類型有誤!</span>';
    }
};



以上就是扣丁學堂HTML5培訓小編給大家分享的如何利用Canvas實現(xiàn)圖片壓縮的示例,希望對小伙伴們有所幫助,想要了解更多內(nèi)容的小伙伴可以登錄扣丁學堂官網(wǎng)咨詢??鄱W堂是專業(yè)的HTML5培訓機構,不僅有專業(yè)的老師和與時俱進的課程體系,還有大量的HTML5視頻教程供學員觀看學習哦,心動的小伙伴快快行動吧??鄱W堂H5技術交流群:559883758。


關注微信公眾號獲取更多學習資料

【關注微信公眾號獲取更多學習資料】



查看更多關于“HTML5開發(fā)技術資訊”的相關文章>>



標簽: 扣丁學堂HTML5培訓 如何利用Canvas實現(xiàn)圖片壓縮 HTML5培訓 HTML5視頻教程 HTML5在線課程 HTML5在線學習 HTML5在線視頻 HTML5從入門到精通 html5基礎教程

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部