首页 > 编程语言 >微信小程序裁剪图片(上传头像裁剪)完整源码

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

时间:2024-04-02 09:58:46浏览次数:29  
标签:-- 微信 image 裁剪 周期函数 源码 cropper 监听 页面

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

第一步

        将资源文件解压放到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,//高度
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onl oad: 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() {

  }
})

标签:--,微信,image,裁剪,周期函数,源码,cropper,监听,页面
From: https://blog.csdn.net/GDNLQ/article/details/137256231

相关文章

  • 【Redisson】源码预读准备工作
    1 前言微服务常见的就是服务和服务之间的协同了,那么Redisson就是我们常用的一种协同工具了,所以想看看它的源码,只有了解它的原理,才能更好的正确使用它。2 准备工作既然要看是不是得先知道的它的源码地址呢?地址:Redisson源码有了源码,是不是还需要一份文档呢?没文档的话怎么......
  • 【附源码】JAVA计算机毕业设计汪汪喵宠物寄养中心系统设计与开发(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着社会的发展和人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。人们对宠物的关爱和投入也越来越多,这导致了宠物服务行业的迅速发展。其中,宠......
  • 【附源码】JAVA计算机毕业设计网上扶贫农产品销售系统(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义随着互联网技术的迅速发展,传统的农产品销售模式已经不能满足现代消费者的需求。尤其是在扶贫领域,由于地理位置偏远、信息不对称等因素,贫困地区的农产品往往难以打......
  • 【附源码】JAVA计算机毕业设计网络安全知识学习系统(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在信息技术飞速发展的今天,网络安全已经成为社会关注的热点问题。随着网络应用的普及和互联网技术的不断进步,网络攻击、数据泄露、恶意软件等安全威胁日......
  • 【附源码】JAVA计算机毕业设计网上购物系统(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,电子商务已经成为现代商业交易中不可或缺的一部分。网上购物系统作为电子商务平台的典型代表,以其便捷性、高效性和丰富的商品......
  • 【附源码】JAVA计算机毕业设计网上购物中心(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,电子商务已成为现代社会中不可或缺的一部分。网络购物因其便捷性、高效性和多样性,受到了广大消费者的喜爱。传统的购物方式需......
  • 【附源码】JAVA计算机毕业设计网上花店系统(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,电子商务已经成为现代社会中一个重要的商业活动形式。网络购物作为电子商务的重要组成部分,以其方便快捷的特点深受广大消费者......
  • 【附源码】JAVA计算机毕业设计网上图书销售系统(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,电子商务已经成为现代社会中不可或缺的一部分。在线购物系统因其方便快捷的特点被广大消费者接受和喜爱。特别是在图书行业,网......
  • Node.js毕业设计基于HarmonyOS在线学习平台app(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的迅猛发展,移动应用已经成为了人们获取信息、学习知识的重要渠道。在线学习平台作为现代教育技术的重要组成部分,为人们提供了便捷的学习途径......
  • Node.js毕业设计基于HarmonyOS的门诊预约平台(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着科技的不断发展,互联网已经深入到我们生活的方方面面,特别是在医疗领域,互联网技术的应用使得医疗服务变得更加便捷和高效。然而,尽管互联网医疗的发展势头......