流浪男
流浪男
  • 发布:2015-03-29 02:29
  • 更新:2024-06-20 17:55
  • 阅读:26320

【分享】头像类裁剪上传

分类: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

要回复文章请先登录注册

deran

deran

插件里面没有getDataURL这个函数啊!怎么获取裁剪后图像的url数据呢?
2015-07-14 16:47
deran

deran

裁剪后的图像url获取不到。。。
2015-07-08 11:14
sjzhf

sjzhf

mark
2015-06-18 18:12
j豆豆

j豆豆

能不能给个完整的例子啊~~ 跪求啊~~
2015-04-09 15:54
尘岳two

尘岳two

回复 焦爷 :
iphone的问题,我们是在服务器处理的。读取exif信息,判断,旋转。
2015-04-07 15:35
焦爷

焦爷

哥们,能留个联系方式么?我用上边的方法上传头像,可是iPhone纵向拍的图片显示的时候是顺时针旋转90°显示的。你怎么处理这种情况了
2015-04-01 15:21
shuoS

shuoS

来了联系下我 能发个DEMO给我吗 谢谢
2015-03-31 11:29
小军

小军

非常感谢啊。弥补了官方不支持图片裁剪的缺陷。希望下一版本官方能支持原生裁剪
2015-03-31 10:11