首页 > Web开发 > 详细

cropper.js图片裁剪——第二弹

时间:2019-08-16 16:27:13      阅读:289      评论:0      收藏:0      [点我收藏+]

之前有研究过图片裁剪,主要是是获取到裁剪的坐标,然后将坐标以及原图上传到后台,后台进行裁剪的方法:链接地址

今天主要是 前端进行裁剪,之后吧裁剪过得图片base64源码,上传至后台的方法:

 

1.引入资源

资源下载地址:

Cropper v4.0.0
* https://github.com/fengyuanchen/cropper

技术分享图片

移动端使用的时候 还要修改一些样式 适配移动端

这里放一个使用过的样式:

技术分享图片
.dialog {
  display: none;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 99;
  top: 0;
  left: 0;
}
.mask {
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 1);
}
.main {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.handle {
  position: fixed;
  bottom: .7rem;
  right: 0;
  z-index: 100;
  color: #fff;
}
.handle span {
  display: block;
  background: #000;
  line-height: 1.4rem;
  padding: 0 1rem;
  cursor: pointer;
  font-size: .52rem;
  float: left;
  margin-right: .3rem;
}
View Code

 

2.html结构

技术分享图片
<!-- 图片裁剪-->
<div class="dialog">
    <div class="mask"></div>
    <div class="main">
        <img src="" alt="" id="image">
    </div>
    <div class="handle clearfix">
        <span class="cancle">取消</span>
        <span class="finish">完成</span>
    </div>
</div>
View Code

3.js

技术分享图片

 

 

 $(".dialog").show();
                            //$(‘#image‘) 是img 标签,是获取到的result
                            // destroy 销毁cropper并从图像中删除整个cropper
                            //cropper 开始调用裁剪
                            $(#image).cropper(destroy).attr(src, result).cropper({
                                aspectRatio: 0.75, // 纵横比
                                //viewMode定义cropper的视图模式
                                /*  0:没有限制,3可以移动到2外。
                                    1 : 3只能在2内移动。
                                    2:2图片 不全部铺满1 (即缩小时可以有一边出现空隙)
                                    3:2图片填充整个1
                                    */
                                viewMode: 1,
                                //显示在裁剪框上方的虚线
                                guides: false,
                            });
                            $(".finish").on(click, function () {
                                //确定裁剪
                                crop();
                                $(".dialog").hide();
                            });
                            $(".cancle").on(click, function () {
                                //裁剪取消
                                crop_cancle();
                                $(".dialog").hide();
                            });

 

点击确定和取消的方法

 var resImg = null;      //剪切后图片base64编码资源
    //确定裁剪的方法
    var crop = function () {
        var img = $(#image);
        var $target = $(#upload);
        //getCroppedCanvas画一张剪裁的图片。如果没有剪裁,则返回一个绘制整个im的画布
        resImg = img.cropper(getCroppedCanvas, {
            // width输出Canvas的宽度
            // height输出Canvas的高度
            width: 900,
            height: 1200
        }).toDataURL(image/jpeg);//返回一个包含图片展示的 data URI 。可以使用 type 参数其类型,默认为 PNG 格式。图片的分辨率为96dpi。q
        $target.attr(src, resImg);
      
        //利用表单提交 这个是隐藏input用来提交 裁剪之后的banse64源码
        $(#upImg).val(resImg);
    };
    //取消裁剪
    var crop_cancle = function () {
        console.log( $(#upImg).val())
        //将图片置空
        $(#image).attr(src, ‘‘);
    };

这样就可以获取到 裁剪之后的banse64源码,利用表单提交

 

关于cropper的基本用法介绍链接,戳这里

 

 

  

cropper.js图片裁剪——第二弹

原文:https://www.cnblogs.com/GoTing/p/11363494.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!