压缩图片

原创 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图片小

Imageloader<8>-压缩图片

inSampleSize压缩图片
  • yangshangwei
  • yangshangwei
  • 2015年12月17日 01:09
  • 2870

压缩图片

// 生成图片缩略图 + (UIImage *)thumbnailWithImageWithoutScale:(UIImage *)image size:(CGSize)asize {     ...
  • sadlike
  • sadlike
  • 2013年09月02日 15:44
  • 456

日用 Python —— 压缩图片尺寸

自己写了用来压缩 DC 照片的,批量处理整目录文件,非常方便。需要安装 PIL #!/usr/bin/env python import Image import os import os.pa...
  • ccat
  • ccat
  • 2010年06月24日 22:34
  • 8227

压缩图片(-)

压缩图片图片的宽度长度不变 质量降低 import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imag...
  • tomatoFIREegg
  • tomatoFIREegg
  • 2017年07月05日 17:44
  • 65

webpack 压缩图片

安装 image-webpack-loader  然后webapck配置里  { test: /\.(png|jpg|gif)$/i, exclude: /(node_modules|bow...
  • txl910514
  • txl910514
  • 2017年07月26日 10:38
  • 1166

使用grunt来无损压缩图片

作为一个前端工程师,或者web开发工程师,图片是你无法忽视的一个东西,没有一本优化方面的书不会提及图片的优化。 pagespeed里面,首当其冲的也是提示你的图片需要优化。...
  • wuweitiandian
  • wuweitiandian
  • 2015年06月09日 09:28
  • 3021

【736c677c4】JS等比压缩图片的办法

function proDownImage(path,imgObj) { // 等比压缩图片工具 //var proMaxHeight = 185; var proMaxHeight=300; ...
  • slg1988
  • slg1988
  • 2012年09月16日 14:35
  • 19419

nodeJS压缩图片/JS/CSS

转:利用node压缩、合并js,css,图片 1.安装nodejs http://nodejs.org/ 2.安装各自的node package js我用的是U...
  • Bennes
  • Bennes
  • 2015年10月09日 09:04
  • 1283

PHP压缩图片函数

/** 图片压缩函数 * @param $orgin_file 原始图片文件 * @param $maxwidth 最大宽度 * @param $maxheight 最大高度 * @param...
  • kissxia
  • kissxia
  • 2016年07月04日 17:18
  • 560

office2010下压缩图片没有效果解决方案

前段时间在一个EXCEL中保存了项目中用到的几张图片,图片只是简单的PNG格式的,但是保存的EXCEL却达到了上百MB,尝试了另存为-》工具-》压缩图片-》使用文档分辨率(如图1)并没有解决实际问题,...
  • StemQ
  • StemQ
  • 2016年05月22日 20:49
  • 1473
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:压缩图片
举报原因:
原因补充:

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