HTML5 JS壓縮圖片并獲取圖片BASE64編碼上傳
本文實例為大家分享了HTML5 JS壓縮圖片,并獲取圖片BASE64編碼上傳的方法,供大家參考,具體內(nèi)容如下
基本過程
1) 調(diào)用 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');
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js提交form表單,并傳遞參數(shù)的實現(xiàn)方法
下面小編就為大家?guī)硪黄猨s提交form表單,并傳遞參數(shù)的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05
動態(tài)創(chuàng)建script在IE中緩存js文件時導致編碼的解決方法
這篇文章主要介紹了動態(tài)創(chuàng)建script在IE中緩存js文件時導致編碼的解決方法,需要的朋友可以參考下2014-05-05

