当前位置:   article > 正文

微信小程序图片裁剪插件image-cropper_微信小程序 image-cropper

微信小程序 image-cropper

开始前分享一下最近写的vue、小程序自定义钩子
https://developers.weixin.qq.com/community/develop/article/doc/00002ac57208f0e7335d111f156013

image-cropper

一款高性能的微信小程序图片裁剪插件,支持旋转、设置尺寸

功能亮点

1.支持旋转支持旋转支持旋转。
2.性能超高超流畅,大图毫无卡顿感。
3.可以设置导出图片尺寸。
4.自由模式和限制模式随意切换。
5.插件化,使用非常简单。
6.点击中间窗口实时查看裁剪结果。

Githubhttps://github.com/wx-plugin/image-cropper/tree/master

体验Demo

初始准备

1.json文件中添加image-cropper
"usingComponents": {
   "image-cropper": "../image-cropper/image-cropper"
}
  • 1
  • 2
  • 3
2.wxml文件
<image-cropper id="image-cropper" limit_move="true" disable_rotate="true" width="{{width}}" height="{{height}}" imgSrc="{{src}}" bindload="cropperload" bindimageload="loadimage" bindtapcut="clickcut"></image-cropper>
  • 1
3.wxss文件末尾
@import '../plugin/image-cropper.wxss'  
  • 1
4.示例
Page({
    data: {
        src:'',
        width:250,//宽度
        height: 250,//高度
    },
    onLoad: function (options) {
        this.cropper = this.selectComponent("#image-cropper");
        this.setData({
            src:"https://raw.githubusercontent.com/1977474741/image-cropper/dev/image/code.jpg",
        });
        wx.showLoading({
            title: '加载中'
        })
    },
    cropperload(e){
        console.log("cropper初始化完成");
    },
    loadimage(e){
        console.log("图片加载完成",e.detail);
        wx.hideLoading();
        //重置图片角度、缩放、位置
        this.cropper.imgReset();
    },
    clickcut(e) {
        console.log(e.detail);
        //点击裁剪框阅览图片
        wx.previewImage({
            current: e.detail.url, // 当前显示图片的http链接
            urls: [e.detail.url] // 需要预览的图片http链接列表
        })
    },
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

参数说明

属性类型缺省值取值描述必填
imgSrcString无限制图片地址(如果是网络图片需配置安全域名)
disable_rotateBooleanfalsetrue/false是否禁止用户旋转(为false时建议同时设置limit_move为false)
limit_moveBooleanfalsetrue/false是否限制图片移动范围(裁剪框始终在图片内)(为true时建议同时设置disable_rotate为true)
widthNumber200超过屏幕宽度自动转为屏幕宽度裁剪框宽度
heightNumber200超过屏幕高度自动转为屏幕高度裁剪框高度
export_scaleNumber3无限制导出图片的大小比例(相对于裁剪框尺寸),决定了裁剪图片的尺寸
qualityNumber10-1生成的图片质量
cut_topNumber居中始终在屏幕内裁剪框上边距
cut_leftNumber居中始终在屏幕内裁剪框左边距
canvas_topNumber-5000无限制(默认不显示-超出屏幕外)canvas上边距
canvas_leftNumber-5000无限制(默认不显示-超出屏幕外)canvas左边距
imgWidthNumber宽高都不设置,最小边填满裁剪框支持%(不加单位为px)(只设置宽度,高度自适应)图片宽度
imgHeightNumber宽高都不设置,最小边填满裁剪框支持%(不加单位为px)(只设置高度,宽度自适应)图片高度
scaleNumber1无限制图片的缩放比
angleNumber0无限制图片的旋转角度
min_scaleNumber0.5无限制图片的最小缩放比
bindloadFunctionnull函数名称cropper初始化完成
bindimageloadFunctionnull函数名称图片加载完成,返回值Object{width,height,path,type}
bindtapcutFunctionnull函数名称点击中间裁剪框,返回值Object{src,width,height}

函数说明

函数名参数返回值描述参数必填
upload调起wx上传图片接口并开始剪裁
pushImgsrc开始裁剪图片
getImgFunction(回调函数)src获取裁剪之后的图片路径(图片尺寸 = 图片宽高 * export_scale)
setCutXYX、Y设置裁剪框位置
setCutSizewidth、height设置裁剪框大小
setCutCenter设置裁剪框居中
setScalescale设置图片缩放比例(不受min_scale、max_scale影响)
setAngledeg设置图片旋转角度
setTransform{x,y,angle,scale,cutX,cutY}图片在原有基础上的变化(scale受min_scale、max_scale影响)根据需要传参
imgReset重置图片的角度、缩放、位置(可以在onloadImage回调里使用)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/565200
推荐阅读
相关标签
  

闽ICP备14008679号