压缩图片

原创 2016年08月31日 10:53:31
//获取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 chrome
		url=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图片小

拍照/选择相册,图片压缩旋转处理

最近做项目需要用到拍照和选择相册照片,并显示出来imageview 上,然后压缩上传到服务器中,这本是一个非常常见的功能,但对于图片的处理确实一个技术活,稍微不注意会出现oom,图片压缩也要处理的刚刚...
  • forezp
  • forezp
  • 2016年09月15日 20:20
  • 11754

图片批量压缩处理软件

  • 2017年11月22日 10:43
  • 15.24MB
  • 下载

无损图片压缩处理工具

  • 2017年10月31日 10:10
  • 36.51MB
  • 下载

Android拍照得到全尺寸图片并进行压缩

"http://schemas.android.com/apk/res/android"   android:layout_width="match_parent"   android:layou...
  • shotaSu
  • shotaSu
  • 2016年01月28日 11:24
  • 644

Android图片压缩工具

  • 2017年04月27日 15:31
  • 119KB
  • 下载

批量压缩图片文件,保持长宽比

  • 2015年07月05日 19:04
  • 27KB
  • 下载

使用TinyPng来压缩图片

图片资源在安装包中所占的分量很重,减少图片大小,安装包的体积改变立竿见影。 怎么压图呢?自己对图像处理也没有研究啊,只能捡现成的。网上一搜,压图工具很多,但测试之后,恕我直言,很多都是垃圾,有的压图之...
  • Dancen
  • Dancen
  • 2016年12月23日 17:50
  • 1608

图片压缩工具

  • 2015年07月01日 09:51
  • 309KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:压缩图片
举报原因:
原因补充:

(最多只允许输入30个字)