压缩图片
来源:互联网 发布:蚁群算法 c语言 编辑:程序博客网 时间:2024/06/01 23:57
//获取get传值function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null;}/将input=file里的图片对象转化成base64/function getObjectURL(file){var url=null if(window.createObjectURL!=undefined){ // basic url=window.createObjectURL(file)}else if(window.URL!=undefined){ // mozilla(firefox)url=window.URL.createObjectURL(file)} else if(window.webkitURL!=undefined){ // webkit or chromeurl=window.webkitURL.createObjectURL(file)}return url}$("#face_upload").change(function(){ var objUrl=getObjectURL(this.files[0]); var size=this.files[0].size; if(size>=1024000)bottomTip("图片超过1M了哦",0); else{ if(objUrl){ $(window).scrollTop(0); $("article").hide(); $("#img_screen").show(); $("#img_box").show(); $("#clipBtn").show(); } } })/将blob放入form的file里/function convertToFile(base64Codes){base64Codes=compress(base64Codes,70,200,200);console.log(base64Codes); var form=document.forms[0]; var formData = new FormData(form); var img_name=$("#face_upload").val(); formData.append("img",convertBase64UrlToBlob(base64Codes),img_name); $.ajax({ url : "XXX/XX", type : "POST", data : formData, dataType:"json", processData : false, // 告诉jQuery不要去处理发送的数据 contentType : false, // 告诉jQuery不要去设置Content-Type请求头 success:function(data){ imgurl=data.imgs[0]; subuserinfo_face(imgurl); } });}
/*压缩图片<script src="assets/wap/kuaiqin/js/mobileBUGFix.mini.js"></script>判断手机类型,安卓,苹果,其余的操作要在img.onload里执行
js连接http://blog.csdn.net/qq_21119773/article/details/53996721,直接复制文本保存到js文件即可使用
*/
function _compress(blob,output_format){
var img = new Image();
img.src = blob;
var mime_type = "image/jpeg";
if(output_format!=undefined && output_format=="png"){
mime_type = "image/png";
}
img.onload = function(){
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var w = 200;
var h = 200;
$(canvas).attr({width : w, height : h});
ctx.drawImage(this, 0, 0, w, h);
var base64 = canvas.toDataURL(mime_type, 0.5);alert("pp0");
//var bs=convertBase64UrlToBlob(base64);alert(bs.size+"---i---");
//convertToFile(bs);
if( navigator.userAgent.match(/iphone/i) ) {console.log("iphone/");
var mpImg = new MegaPixImage(img);
mpImg.render(canvas, { maxWidth: w, maxHeight: h, quality: 0.8 });
base64 = canvas.toDataURL(mime_type, 0.8 );alert("pp");
}
// 修复android
if( navigator.userAgent.match(/Android/i) ) {alert("pp_an");
base64=canvas.toDataURL(mime_type, 0.8);
}
var bs=convertBase64UrlToBlob(base64);alert("bs");alert(bs.size+"---i---");
convertToFile(bs);
};
}
/将base64转化成blob/function convertBase64UrlToBlob(urlData){ var bytes=window.atob(urlData.split(',')[1]); //去掉url的头,并转换为byte //处理异常,将ascii码小于0的转换为大于0 var ab = new ArrayBuffer(bytes.length); var ia = new Uint8Array(ab); for (var i = 0; i < bytes.length; i++) { ia[i] = bytes.charCodeAt(i); } return new Blob( [ab] , {type : 'image/png'});}总结:图片大小<分辨率,即900*900*0.5的图片大小比500*500*0.8图片小
1 0
- 图片压缩。大小压缩
- 图片压缩按比例压缩
- 压缩图片
- 压缩图片
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 压缩图片
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 压缩图片
- 图片压缩
- C++之内联函数讲解
- 记录一次大规模linux系统root密码撞库的经历
- 关于java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.Att
- 【移动开发】View的scrollTo()和scrollBy()区别
- activemq+spring 持久化发送消息
- 压缩图片
- 如何利用Matlab APPS camera calibrator 测相机内部参数!!
- jQuery获取json数据
- scss入门笔记
- 不定时更新自己用到的oracle 比较有用的sql语句和函数用法
- PL/SQL笔记
- Log4j配置详解
- Spring Boot之基于注解的数据格式化
- windows7远程