ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Base64压缩

2022-05-27 15:01:13  阅读:169  来源: 互联网

标签:canvas base64 压缩 Base64 file var quality size


<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" session="false" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <%@ include file="/WEB-INF/admin/views/watermark.jsp" %>
    <%@ include file="/WEB-INF/admin/views/common/includeHeader.jsp" %>
    <title>图片压缩</title>
</head>


<body>
    <input id="file" type="file"  capture="microphone" accept="image/*"> 
</body>

<script type="text/javascript">
$("#file").change(function(){
var m_this = this;
      cutImageBase64(m_this,null,400,0.8);  
})
function cutImageBase64(m_this,id,wid,quality) {

    var file = m_this.files[0];
    var URL = window.URL || window.webkitURL;
    var blob = URL.createObjectURL(file);
    var base64;
    var quality=0.8;
var img = new Image();
    img.src = blob;
    img.onload = function() {
        var that = this;
        //生成比例
        var w = that.width,
            h = that.height,
            scale = w / h;
            w = wid || w;
            h = w / scale;
//生成canvas
        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');
        $(canvas).attr({
            width: w,
            height: h
        });
        ctx.drawImage(that, 0, 0, w, h);
    var size=file.size/1024;
    // 如想确保图片压缩到自己想要的尺寸,如要求在50-150kb之间,请加以下语句,quality初始值根据情况自定
				 while (size > 64) {
				 	quality -= 0.1;
				 	size=canvas.toDataURL('image/jpeg', quality);
				 }
				// 防止最后一次压缩低于最低尺寸,只要quality递减合理,无需考虑
				 while (size < 12) {
				 	quality += 0.1;
				 	size=canvas.toDataURL('image/jpeg', quality);
				 }

        // 生成base64            
        base64 = canvas.toDataURL('image/jpeg', quality);
        console.log(base64)
        console.log(base64.length/1024)
        console.log(file.size/1024)
    };
}
</script>
</html>

标签:canvas,base64,压缩,Base64,file,var,quality,size
来源: https://www.cnblogs.com/whtjyt/p/16317668.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有