本文實例為大家分享了HTML5 JS壓縮圖片,並獲取圖片BASE64編碼上傳的方法,供大家參考,具體內容如下
基本過程
1) 調用 FileReader 的 reader.readAsDataURL(img); 方法, 在其onload事件中, 將用戶選擇的圖片讀入 Image對象.
2) 在image對象的 onload 事件中, 通過 canvas 的 canvas.getContext('2d') 的 drawImage 方法, 將Image 改變大小繪制到canvas上.
3) 通過 canvas.toDataURL("image/jpeg", 0.1); 方法, 將圖片變成base64字符串, 傳入服務端.
var vueImg = new Vue({ el: "#divCarImages", data: { model: { carId: '@carId', imageTitle:'',img64:'' }, images: [] }, methods: { imageHandle: function () { var fup = $("#fileImg")[0]; var img = fup.files[0]; var image = new Image(); var canvas = $("#canvas")[0];//document.createElement("canvas"); var ctx = canvas.getContext('2d'); image.onload = function () { var w = image.naturalWidth, h = image.naturalHeight; var toSize = 400; canvas.width = toSize; canvas.height = toSize; var w2 = toSize, h2 = toSize; if (w > h) { h2 = h / w * toSize; } else { w2 = w / h * toSize; } ctx.drawImage(image, 0, 0, w, h, 0, 0, w2, h2); } // 判斷是否圖片 if (!img) { return; } // 判斷圖片格式 if (!(img.type.indexOf('image') == 0 && img.type && /\.(?:jpg|png|gif)$/.test(img.name))) { alert('圖片只能是jpg,gif,png'); return; } var reader = new FileReader(); reader.onload = function (e) { // reader onload start var url = reader.result; image.src = url; } // reader onload end reader.readAsDataURL(img); } } });
function uploadImg() { var canvas = $("#canvas")[0]; vueImg.model.img64 = canvas.toDataURL("image/jpeg", 0.1); //$("#testMsg").html(imgData.length); // ajax 上傳圖片 $.post("@Url.Content("~/AliOss/SaveCarImage")", vueImg.model , function (ret) { parseAjaxData(data, function (model) { console.log(model.Path); alert(model.Path); $('#showimg').html('<img src="' + model.Path + '">'); }) }, 'json'); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。