流浪男
流浪男
  • 发布:2015-03-29 02:29
  • 更新:2021-02-09 10:18
  • 阅读:25835

【分享】头像类裁剪上传

分类:HTML5+

夜深了,分享个头像类的裁剪上传,代码写的比较啰嗦。
虽然说用jquery渲染力差,没办法,还是用了。然后借助cropper来完成裁剪

<script src="plugin/avatar/js/jquery.min.js"></script>  
<script src="plugin/avatar/js/cropper.js"></script>  
<link href="plugin/avatar/css/cropper.css" rel="stylesheet">

照片容器

<a href="#picture"><div id="changeAvatar"></div></a>

裁剪照片的容器(样式就自己写了)

<div id="showEdit">  
        <header class="mui-bar mui-bar-nav mui-nav-bg" style="background:none; position:absolute; top:0;">  
            <a class="mui-icon iconfont icon-roundclosefill mui-pull-left" style="color:#ffffff; font-size:36px;" onclick="closeEdit();"></a>  
            <a class="mui-icon iconfont icon-roundcheckfill mui-pull-right" style="color:#ffffff; font-size:36px;" onclick="confirm();"></a>  
        </header>  
        <div id="report"></div>  
    </div>

下面就很简单了,调用下相机和相册选择图片。然后加入cropper的几行代码就搞定了

//拍照  
function getImage() {  
    var cmr = plus.camera.getCamera();  
    cmr.captureImage( function (p) {  
        plus.io.resolveLocalFileSystemURL( p, function ( entry ) {      
            var localurl = entry.toLocalURL();//  
            $("#report").html('<img src="'+localurl+'">');  
            cutImg();  
            mui('#picture').popover('toggle');  
        });  
    });  
}  
//相册选取  
function galleryImgs(){  
    plus.gallery.pick( function(e){  
        $("#report").html('<img src="'+e.files[0]+'">');  
        cutImg();  
        mui('#picture').popover('toggle');  
    }, function ( e ) {  
        //outSet( "取消选择图片" );  
    },{filter:"image",multiple:true});  
}

照片裁剪类:

function cutImg(){    
    $("#showEdit").fadeIn();  
    var $image = $('#report > img');  
    $image.cropper({  
      aspectRatio: 1 / 1,  
      autoCropArea: 0.8  
    });  
}

确定裁剪并上传(base64)

function confirm(){  

    $("#showEdit").fadeOut();  
    var $image = $('#report > img');  
    var dataURL = $image.cropper("getDataURL");  
    $("#changeAvatar").html('<img src="'+dataURL+'" />');  
}  

function postAvatar() {  

    var $image = $('#report > img');  
    var dataURL = $image.cropper("getDataURL");  
    var data = {  
            base64: dataURL  
    };  
    $.post(url,data,function(data){  
        //这里就自己写了哈  
    });  
};

效果

有高手可以补充下的谢谢啦哈

23 关注 分享
raogang aaaa DCloud_heavensoft bober 尘岳two shuoS j豆豆 Snoopy 小莫骚麦 Oscar wind gaus 建东 suci 豆花饭 Trust 1***@qq.com taozijiayou jayhou 1***@qq.com 2***@qq.com 小明子 t***@protonmail.com

要回复文章请先登录注册

1***@qq.com

1***@qq.com

有问题可以找我,一起学习吧

我的个人项目已经上线了,我使用的是七牛云存储(阿里也不错的),大概原理也一样吧,你们可以看看,很多功能都有了。

1、Android的(软著没申请下来,暂时上不了架):http://d.firim.top/tc7b?utm_source=fir&utm_medium=qrhttp://d.firim.top/tc7b?utm_source=fir&utm_medium=qr

2、iOS已经上架搜索:猫云—优质贴心的宠物平台

3、顺便也给你们给链接吧,例如iOS做唤起第三方或某个APP时可以使用到 https://apps.apple.com/cn/app/猫云-优质贴心的宠物社交平台/id1474103355
2021-02-09 10:18
距离您98米

距离您98米

[ERROR] : ReferenceError: Can't find variable: Cropper 怎么老是包这个啊?
2018-03-08 09:50
距离您98米

距离您98米

回复 野原新之助 :
变形怎么解决?
2018-03-07 16:03
6***@qq.com

6***@qq.com

回复 云钦 :
可以给我个demo看看吗,研究两天了,一直没成功,求demo~~
2017-09-13 11:48
云钦

云钦

回复 1***@qq.com :
http://blog.csdn.net/moniteryao/article/details/47984703
请移步这里,之前我有帖子专门说这个事的。
2017-03-16 19:07
1***@qq.com

1***@qq.com

回复 云钦 :
分享出来
2017-02-08 13:08
野原新之助

野原新之助

纯js版本 无需jq http://ask.dcloud.net.cn/article/1052
2016-12-05 16:58
sheep子涵

sheep子涵

求个demo lz好人!!!
2016-11-08 17:11
1***@qq.com

1***@qq.com

回复 陈影 :
我也是
2016-10-19 10:26
4***@qq.com

4***@qq.com

有没有一个完整的demo啊。
2016-10-09 11:36