zoukankan      html  css  js  c++  java
  • JS图片压缩

    JS图片压缩

    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
    
    
            <input type="file" id="file1"  onchange="selFile()"  />
    
    
       <img id="res" />
    
    
    
    
            <script>
    
                var maxWidth = 400;
                var maxHeight =400;
                var canvas = document.createElement('canvas');
                var context = canvas.getContext('2d');
    
                function selFile()
                {
                    var file = null;
                    var reader = new FileReader();
                    var img = new Image();
                     
             
                    //获取选中的文件
                    file = file1.files[0];
                    reader.readAsDataURL(file);
                    
                    reader.onload=function(e)
                    {                                    
                        var base64 = reader.result.split(',')[1];
                        var dataUrl = 'data:image/png;base64,' + base64; 
                        img.src = dataUrl; 
                    }
    
    
    
                    img.onload = function () {
    
                        var originWidth = this.width;
                        var originHeight = this.height;
    
                        var targetWidth = originWidth;
                        var targetHeight = originHeight;
    
                        if (originWidth > maxWidth || originHeight > maxHeight) {
                            if (originWidth / originHeight > maxWidth / maxHeight) {
                                // 更宽,按照宽度限定尺寸
                                targetWidth = maxWidth;
                                targetHeight = Math.round(maxWidth * (originHeight / originWidth));
                            } else {
                                targetHeight = maxHeight;
                                targetWidth = Math.round(maxHeight * (originWidth / originHeight));
                            }
                        }
    
    
    
                        /////////////////// canvas
    
    
                        canvas.width = targetWidth;
                        canvas.height = targetHeight;
    
                        context.clearRect(0, 0, targetWidth, targetHeight);
                        context.drawImage(img, 0, 0, targetWidth, targetHeight);
    
    
                        var base64 = canvas.toDataURL('image/jpeg', 0.8);
    
                        res.src = base64;
    
    
    
    
                        /////////////////// canvas
    
    
    
    
    
    
    
                    }
    
    
                }
    
            </script>
    
    
    
        </div>
        </form>
    </body>
    </html>
    

      

  • 相关阅读:
    FFMPEG音视频基础问题和被面试问到的东西
    OpenGL学习
    FFMPEG起航之旅
    SurfaceView、TextureView对比和学习
    对文件拷贝、删除操作、对时间的计算以及转化
    音视频开发
    企业级Android应用架构设计与开发
    屏幕分辨率的适配&&开发文档的介绍
    设计模式的学习
    自定义Dialog的模版
  • 原文地址:https://www.cnblogs.com/mqingqing123/p/12341712.html
Copyright © 2011-2022 走看看