zoukankan      html  css  js  c++  java
  • 图片截取插件Cropper

    自己仿照github上的例子写的demo,github上的例子太抽象了,自己写的最适合自己,通俗易懂。

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link  href="./css/cropper.css" rel="stylesheet">
        <style>
            img {
                max-width: 100%; /* This rule is very important, please do not ignore this! */
            }
    
            .prev{
                display: inline-block;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <img id="image" src="./img/picture.jpg">
        </div>
    
        <br><br>
    
        <!--crop是对剪切窗口的操作,move是对图片的操作-->
        <div>
            <input type="button" value="crop" id="btnCrop" />
            <input type="button" value="move" id="btnMove" />
            <input type="button" value="16:9" id="169">
            <input type="button" value="1:1" id="11">
            <input type="button" value="get" id="getCanvas">
        </div>
    
        <br><br>
    
        <!--图片截取的结果显示在这里-->
        <div class="prev" style=" 500px; height: 500px; overflow: hidden"></div>
        <div class="prev" style=" 300px; height: 300px; overflow: hidden"></div>
        <div class="prev" style=" 200px; height: 200px; overflow: hidden"></div>
    
        <br><br>
    
        <div id="getCroppedCanvas" style="500px; height:500px; overflow:hidden;"></div>
    
    
        <script src="./js/jquery-1.11.3.min.js"></script>
        <script src="./js/cropper.js"></script>
        <script>
            $(function(){
                var image = document.getElementById("image");
    
                //可以通过$().cropper(options)方法来设置参数。如果想改变全局默认参数,可以使用$.fn.cropper.setDefaults(options)方法。
                var cropper = new Cropper(image, {
                    aspectRatio: 16 / 9,  //宽高比
                    preview: '.prev',  //预览窗口
                    guides: false,  //裁剪框的虚线
                    autoCropArea: 0.5,  //0-1之间的数值,定义自动剪裁区域的大小,默认0.8
                    dragCrop: true,  //是否允许移除当前的剪裁框,并通过拖动来新建一个剪裁框区域
                    movable: true,  //是否允许移动剪裁框
                    resizable: true,  //是否允许改变裁剪框的大小
                    zoomable: true,  //是否允许缩放图片大小
                    mouseWheelZoom: true,  //是否允许通过鼠标滚轮来缩放图片
                    touchDragZoom: true,  //是否允许通过触摸移动来缩放图片
                    rotatable: true,  //是否允许旋转图片
                    minContainerWidth: 200,  //容器的最小宽度
                    minContainerHeight: 200,  //容器的最小高度
                    minCanvasWidth: 0,  //canvas 的最小宽度(image wrapper)
                    minCanvasHeight: 0,  //canvas 的最小高度(image wrapper)
                    strict: true,
                    crop: function(e) {  //当改变剪裁容器或图片时的事件函数
                        console.log(e.detail.x);
                        console.log(e.detail.y);
                        console.log(e.detail.width);
                        console.log(e.detail.height);
                        console.log(e.detail.rotate);
                        console.log(e.detail.scaleX);
                        console.log(e.detail.scaleY);
                    },
                    build: function () {
                        console.log('build');
                    },
                    built: function () {
                        console.log('built');
                    },
                    cropstart: function (e) {
                        console.log('cropstart', e.detail.action);
                    },
                    cropmove: function (e) {
                        console.log('cropmove', e.detail.action);
                    },
                    cropend: function (e) {
                        console.log('cropend', e.detail.action);
                    }
                });
    
                $("#btnCrop").on("click", function(){
                    cropper.setDragMode("crop");
                });
    
                $("#btnMove").on("click", function(){
                    cropper.setDragMode("move");
                });
    
                $("#11").on("click", function(){
                    cropper.setAspectRatio(1,1);
                });
                $("#169").on("click", function(){
                    cropper.setAspectRatio(16,9);
                });
    
                $("#getCanvas").on("click", function(){
                    $("#getCroppedCanvas").html(cropper.getCroppedCanvas());
                });
            });
        </script>
    </body>
    </html>

    API

    https://www.awesomes.cn/repo/fengyuanchen/cropper

  • 相关阅读:
    bzoj-2748 2748: [HAOI2012]音量调节(dp)
    bzoj-2338 2338: [HNOI2011]数矩形(计算几何)
    bzoj-3444 3444: 最后的晚餐(组合数学)
    codeforces 709E E. Centroids(树形dp)
    codeforces 709D D. Recover the String(构造)
    codeforces 709C C. Letters Cyclic Shift(贪心)
    codeforces 709B B. Checkpoints(水题)
    codeforces 709A A. Juicer(水题)
    Repeat Number
    hdu 1003 Max Sum (动态规划)
  • 原文地址:https://www.cnblogs.com/zcynine/p/5394168.html
Copyright © 2011-2022 走看看