国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

Js利用Canvas實現圖片壓縮功能

2024-05-06 16:39:40
字體:
來源:轉載
供稿:網友

最近做的APP項目涉及到手機拍照上傳圖片,因為手機拍照的圖片通常都比較大,所以上傳的時候就會很慢。為此,需要對圖片進行壓縮處理來優化上傳功能。以下是具體實現:

/*  * 圖片壓縮 * img    原始圖片 * width   壓縮后的寬度 * height  壓縮后的高度 * ratio   壓縮比率  */ function compress(img, width, height, ratio) {           var canvas, ctx, img64;           canvas = document.createElement('canvas');           canvas.width = width;   canvas.height = height;           ctx = canvas.getContext("2d");           ctx.drawImage(img, 0, 0, width, height);           img64 = canvas.toDataURL("image/jpeg", ratio);           return img64; }

上面是一個圖片壓縮函數,返回 base64 格式的圖片數據。 其中壓縮比率取值(0 - 1 之間)越大圖片質量越高。建議不要將圖片轉為 png 格式,因為轉為 png 格式,圖片的 base64 比轉為 jpeg 的要長不少。下面是實際調用:

var image = new Image();image.src = "/img/test.jpg";      image.onload = function(){  var img64 = compress(image, 500, 400, 0.7);  document.getElementById("test").src = img64;}

注意: 壓縮方法的調用以及圖片src賦值必須放在圖片的 onload 方法里面。因為只有等圖片加載完成后才能進行壓縮處理,從而轉換為base64 進行賦值。 如果放在 onload 方法外面,則可能壓縮代碼無效,或者會生成一張純黑色的圖片。

以上這篇Js利用Canvas實現圖片壓縮功能就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鞍山市| 个旧市| 四川省| 永宁县| 宿松县| 曲松县| 乌恰县| 台北市| 望谟县| 本溪市| 上高县| 即墨市| 凤台县| 杂多县| 澄江县| 卓资县| 三河市| 墨竹工卡县| 望江县| 台东市| 崇明县| 左贡县| 邹城市| 根河市| 铜山县| 石棉县| 孟连| 舟山市| 鸡泽县| 安康市| 水富县| 兰州市| 高州市| 会泽县| 高青县| 桓仁| 清水河县| 衡山县| 葵青区| 鄱阳县| 乐东|