btnFile.onchange=function(event){
jt=1;
imgWrap.setAttribute("class","clearfix");
var files = event.target.files;
var url = URL.createObjectURL(files[0]);
img.src = url;chrome
//qq瀏覽器在預覽後卡死
for(var i = 0, f; f = files[i]; i++){
if(!f.type.match('image.*')) continue;
//console.log("壓縮前1:"+files[i].size);
var reader = new FileReader();
reader.onload = (function(theFile){
return function(e){
var imgpre = new Image();
imgpre.src = e.target.result;canvas
// console.log("壓縮前:"+imgpre.src.length);
// img.src = e.target.result;
var simg=jic.compress(imgpre,10);//保存到服務器的圖片
simg.id="simg";
simg.style.display="none";
imgWrap.appendChild(simg);
//console.log("壓縮後:"+simg.src.length);
}
})(f);
reader.readAsDataURL(f);
}
}瀏覽器
compress: function(source_img_obj, quality, output_format){
var mime_type = "image/jpeg";
if(output_format!=undefined && output_format=="png"){
mime_type = "image/png";
}
var cvs = document.createElement('canvas');
//naturalWidth真實圖片的寬度
cvs.width = 360;//source_img_obj.naturalWidth;
cvs.height = 480//source_img_obj.naturalHeight;
var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0);
var newImageData = cvs.toDataURL(mime_type, quality/100);
alert(source_img_obj.naturalWidth);//安卓uc獲取0 chrome,qq,safari試了沒問題
alert(source_img_obj.naturalHeight);
alert("newImageData:"+newImageData);
var result_image_obj = new Image();
result_image_obj.src = newImageData;
return result_image_obj;服務器
}app
/*在請求中添加圖片start*/
var uimg=document.getElementById("u-img");
if (jt==1 || jt=="1") {
var blob;
var simg=document.getElementById("simg");
if(simg){
var idata=simg.src.split(',')[1];
var mimeString = simg.src.split(',')[0].split(':')[1].split(';')[0];
idata=window.atob(idata);
var ia=new Uint8Array(idata.length);
for (var i = 0; i < idata.length; i++) {
ia[i]=idata.charCodeAt(i);
};
ui
alert([mimeString]);
alert([ia]);
blob=new Blob([ia],{type:mimeString});//uc瀏覽器走不到這裏
alert(4);
data.append('pic1', blob);
alert(blob);
}
}
/*在請求中添加圖片end*/ url