• cropper.js裁剪图片的使用


    这两天难得有时间可以整理一下最近学习的东西,这两天项目中用到了头像上传裁剪的功能,这里只介绍头像的裁剪吧。

    单独实现图片剪裁的功能还是挺容易的,入门级别的。看一遍官方给的文档,基本上就明白了。大家如果不想看英文版的官网介绍,可以看这篇博客,讲的特别好。

    官网地址:http://fengyuanchen.github.io/cropper/

    附上网址:https://blog.csdn.net/weixin_38023551/article/details/78792400

    这篇文章讲的很好。

    我先说一下自己的需求:就是想要实现图片裁剪的功能,并且要有预览区域,获得裁剪后的图片后点击确认后上传。

    预览的页面结构、样式要自己设置,为了页面美观,可以根据裁剪框的比例来设置,根据aspectRatio这个属性,如果不设置这个属性的话,那这个属性的值就是NAN。一般还是根据需求页面需要的图片比例来设置,这样上传到服务器上的图片就是需求要求的图片了。

    具体的选项介绍可以看这篇博客,我就贴一下代码吧。

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0"/>
        <link rel="stylesheet" href="../css/cropper.css"/>
        <title>cropper 裁剪图片并上传demo</title>
        <style>
            .container {
                width: 70%;
                float: left;
            }
    
            .img {
                width: 50%;
            }
    
            .preview-box {
                width: 320px;
                height: 180px;
                overflow: hidden;
                float: right;
                margin-right: 20px;
    
            }
        </style>
    </head>
    <body>
    <div class="container" id="container">
        <img src="../image/demo_img.jpg" alt="" class="img" id="demoImg"/> <!--真实项目中的路径需要动态获取用户选中图片的路径,可以采用base64编码的形式-->
    </div>
    <div class="preview-box"></div><!--预览框的容器-->
    
    <script src="../js/jquery-2.1.3.min.js"></script>
    <script src="../js/cropper.js"></script>
    <script>
        $('#demoImg').cropper({
            aspectRatio: 16 / 9,//裁剪框比例
            viewMode: 0,//视图模式
            dragMode: 'move',//裁剪框的模式
            minCanvasWidth: 300,//canvas的最小宽度,如果不设置的话,值是0
            minCanvasHeight: 300,
            minCropBoxWidth: 400,//裁剪层的最小宽度,值为0
            minCropBoxHeight: 400,
            preview: '.preview-box'
        })
    </script>
    </body>
    </html>

    附上效果图

    右侧是预览区域,左侧是裁剪区域

  • 相关阅读:
    web第一章(html)
    面向对象第七章,内存的管理,面向对象三大特征封装、继承、多态
    面向对象第六章(接口、强转、多态)
    面向对象第五章(封装、抽象类、匿名内部类)
    面向对象第四章(封装、static)
    面向对象第二章(引用类型数组、继承)
    python 生成随机数
    python 生成测试报告
    python 邮件发送
    python 日志打印
  • 原文地址:https://www.cnblogs.com/bllx/p/9530161.html
Copyright © 2020-2023  润新知