微信小程序裁剪图片(上传头像裁剪)完整源码

本文详细介绍了如何在微信小程序中使用`image-cropper`组件进行图片裁剪,包括解压资源、配置页面、调用API以及裁剪后保存的方法,提供关键代码片段供开发者参考。
摘要由CSDN通过智能技术生成

效果图(将下面的代码复制粘贴就可以做出来了)

第一步

        将资源文件解压放到utils目录下

第二步

        页面json配置文件引入组件

{
  "usingComponents": {
    "image-cropper": "/utils/image-cropper/image-cropper"
  }, 
  "navigationStyle":"custom"
}

第三步

        页面使用

        入参:

        src:'' //原始文件路径(需要修改的文件)

         width:250,//宽度

        height: 250,//高度

<view>
  <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>
  <cover-view class='panel-foot' bindtap="submit" style="position: absolute;">
    <button class='panelBtn' catchtap='' style="z-index: 9999;">保存</button>
  </cover-view>
</view>

第四步

        js文件写裁剪方法以及最后的保存

        

Page({
  /**
   * 页面的初始数据
   */
  data: {
    src:'',
    width:250,//宽度
    height: 250,//高度
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options.path)
    //获取到image-cropper实例
          this.cropper = this.selectComponent("#image-cropper");
          //开始裁剪
          this.setData({
              src:app.globalData.resheadUrl+options.path,
          });
          wx.showLoading({
              title: '加载中'
          })
      },
      cropperload(e){
          console.log("cropper初始化完成");
      },
      loadimage(e){
          console.log("图片加载完成",e.detail);
          wx.hideLoading();
          //重置图片角度、缩放、位置
          this.cropper.imgReset();
      },
      clickcut(e) {
          //点击裁剪框阅览图片
          wx.previewImage({
              current: e.detail.url, // 当前显示图片的http链接
              urls: [e.detail.url] // 需要预览的图片http链接列表
          })
      },
      submit(e){
        this.cropper.getImg((obj) => {
          // 这里就是想要截取的图片传给后台的虚拟路径
          console.log(obj)
        })
      },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Uniapp的微信小程序中,实现裁剪头像功能可以使用uni-image-cropper组件。 1. 安装组件 在Uniapp项目的根目录下,打开命令行窗口,输入以下命令安装uni-image-cropper组件。 ``` npm install uni-image-cropper --save ``` 2. 引入组件 在需要使用裁剪头像功能的页面中,引入uni-image-cropper组件。 ```html <template> <view class="container"> <uni-image-cropper :src="src" :aspectRatio="1" @cropperdone="onCropperDone"></uni-image-cropper> </view> </template> <script> import uniImageCropper from '@/components/uni-image-cropper/uni-image-cropper.vue' export default { components: { uniImageCropper }, data() { return { src: '' } }, methods: { onCropperDone(base64) { // 处理裁剪后的图片 } } } </script> ``` 3. 使用组件 在需要裁剪头像的时候,设置图片的src属性为需要裁剪图片地址。 ```javascript this.src = 'https://example.com/image.jpg' ``` 在用户完成裁剪后,组件会触发cropperdone事件,将裁剪后的图片以base64格式传递给回调函数。在回调函数中,可以对裁剪后的图片进行处理,例如上传到服务器或保存到本地。 ```javascript onCropperDone(base64) { // 处理裁剪后的图片 console.log(base64) } ``` 4. 自定义样式 uni-image-cropper组件支持自定义样式,可以根据需要在页面中添加样式。 ```css .container { width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: 999; background-color: rgba(0,0,0,0.5); } .uni-image-cropper { width: 100%; height: 80%; } .uni-image-cropper .uni-image-cropper-canvas { border: 2px solid #fff; } ``` 通过设置容器的宽度和高度为100%,使组件覆盖整个页面;设置背景色为半透明的黑色,增强遮罩效果。 通过设置uni-image-cropper组件的宽度为100%、高度为80%,使其在页面中居中显示。 通过设置.uni-image-cropper-canvas的边框为2px白色实线,增强裁剪框的可见性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值