原文链接:https://blog.csdn.net/qq_41049816/article/details/90604607*
给网上收到的 不知道好不好用 先收藏着:
小程序涉及到了用户上传头像的功能,用户可以手动选择裁剪区域。

(1)上传头像页面

选择图片,将得到的src地址传递到图片裁剪页面

wx.chooseImage({count: 1,sizeType: ['compressed'],sourceType: ['album', 'camera'],success: function(res) {const src = res.tempFilePaths[0];wx.navigateTo({url: '../upload/upload?src=' + src})},
})

(2)图片裁剪页面

1、引入we-cropper.wxml,主要为了置入canvas作为图片裁剪的容器

<import src='/we-cropper/we-cropper.wxml'/>
<view class="cropper-wrapper"><template is="we-cropper" data="{{...cropperOpt}}"/><view class="cropper-buttons"><viewclass="upload"bindtap="uploadTap">上传图片</view><viewclass="getCropperImage"bindtap="getCropperImage">生成图片</view></view>
</view>

2、引入we-cropper.js

import WeCropper from '../../../we-cropper/we-cropper.js';
const device = wx.getSystemInfoSync() // 获取设备信息
const width = device.windowWidth // 示例为一个与屏幕等宽的正方形裁剪框
const height = device.windowHeight + 10Page({data: {cropperOpt: {id: 'cropper', // 用于手势操作的canvas组件标识符targetId: 'targetCropper', // 用于用于生成截图的canvas组件标识符pixelRatio: device.pixelRatio, // 传入设备像素比width, // 画布宽度height, // 画布高度src: '',scale: 2.5, // 最大缩放倍数zoom: 8, // 缩放系数cut: {x: (width - 320) / 2, // 裁剪框x轴起点y: (width - 320) / 2, // 裁剪框y轴起点width: 320, // 裁剪框宽度height: 320 // 裁剪框高度}}},// 页面onLoad函数中实例化WeCropperonLoad: function(options) {const {cropperOpt} = this.data;cropperOpt.src = options.src;if (cropperOpt.src) {this.cropper = new WeCropper(cropperOpt).on('ready', (ctx) => {console.log(`wecropper is ready for work!`)}).on('beforeImageLoad', (ctx) => {wx.showToast({title: '上传中',icon: 'loading',duration: 3000})}).on('imageLoad', (ctx) => {wx.hideToast()})}},// 插件通过touchStart、touchMove、touchEnd方法来接收事件对象。touchStart(e) {this.cropper.touchStart(e)},touchMove(e) {this.cropper.touchMove(e)},touchEnd(e) {this.cropper.touchEnd(e)},// 自定义裁剪页面的布局中,可以重新选择图片uploadTap() {const self = thiswx.chooseImage({count: 1, // 默认9sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success(res) {const src = res.tempFilePaths[0]self.cropper.pushOrign(src)}})},// 生成图片getCropperImage()this.cropper.getCropperImage(tempFilePath => {// tempFilePath 为裁剪后的图片临时路径if (tempFilePath) {// 拿到裁剪后的图片路径的操作}else{console.log('获取图片地址失败,请稍后重试')}})}
})

注:we-cropper插件:https://we-plugin.github.io/we-cropper/#/

(我转载别人的,具体自己还没用过,希望对你有所帮助!!!)

小程序上传头像图片裁剪相关推荐

  1. 微信小程序上传头像先裁剪图片后上传

    我是使用we-cropper.js插件实现的,下面是实现过程: 文件结构 插件we-cropper.js /*** we-cropper v1.2.0* (c) 2018 dlhandsome* @l ...

  2. 微信小程序上传头像和昵称持久化保存

    微信小程序上传头像和昵称持久化保存 1. 持久化步骤 因为通过微信头像昵称填写功能获取到头像是一个临时头像,这个url只能一段时间内在微信访问,并且无法在公网访问这个url.所以非常有必要把这个url ...

  3. 《微信小程序-证件照换底色》之二:用pycharm搭建django框架来接收微信小程序上传的图片

    用pycharm搭建django框架来接收微信小程序的图片 上一篇:微信云开发实现每个用户在云端上传并且下载自己对应的图片 链接: https://blog.csdn.net/qq_44933075/ ...

  4. 微信小程序上传单张或多张图片

    上传作品图片,上传头像(count=1),亲测有效 分享一下核心代码,希望能帮助大家 1.wxml <!-- 上传作品 --> <view class='upload-works' ...

  5. 微信小程序 - 上传头像

    // 上传文件 function uploadFile(url, filePath, name, formData, cb) { wx.uploadFile({ url: 'https://www.l ...

  6. 小程序上传服务器图片压缩,微信小程序压缩图片并上传到服务器(拿去即用)...

    /**压缩图片*/compressionImage(tempFilePaths, params) { let that= thiswx.getImageInfo({ src: tempFilePath ...

  7. 微信小程序上传组件(可同时长传图片+视频)

    写了个微信小程序上传组件,同时支持上传视频+图片,并且可以返显. 废话不多说,上代码: upload.wxml <view class="clearfix"><v ...

  8. uni-app uni-file-picker文件上传实现拍摄从相册选择获取图片上传文档服务器(H5上传-微信小程序上传)

    前言 最近在使用uni-app写H5移动端,有一个从手机拍摄从相册选择获取图片上传到文档服务器功能. 查阅uni-app发现关于上传图片,uni-file-picker文件上传,uni.chooseI ...

  9. vue 移动端头像裁剪_移动端 上传头像 并裁剪功能(h5)

    移动端头像图片上传裁剪 .button { outline: 0; display: inline-block; margin-bottom: 0; font-weight: 400; text-al ...

最新文章

  1. java string与integer_Java中Integer和String浅谈
  2. 进阶学习(3.4) Builder Pattern 建造者模式
  3. 安全现状:从通杀到专杀
  4. SAP技术专家的ABAP调试器培训材料
  5. linux级别3怎么配置DNS,Linux下DNS服务器配置详解
  6. 谁能跳出数字化系统困境?
  7. 亲手把360奇安信软件卸载了,爽!
  8. 利用insert、update和delete命令可以同时对多个表进行操作_使用自然语言进行程序合成...
  9. python3简明教程-实验楼_#python实验楼教程#学Python哪里有一问一答的Python学习?求具体的~...
  10. 解决Eclipse 64位启动时,报jvm.dll错
  11. Temporal Action Detection with Multi-level Supervision UFA论文阅读笔记
  12. 输入求闰年c语言程序,C语言计算闰年程序
  13. Obsidian好用的Markdown工具
  14. eclipse neno 将jar包自动导入WEB-INF\lib
  15. AWT/SWT/SWING 区别和联系
  16. Linux搭建web网站综合实验
  17. 南农计算机考研真题,2021南京农业大学考研历年真题
  18. Tuxera NTFS21Mac苹果电脑读取硬盘磁盘软件
  19. vue 滑动组件_轻巧的Vue滑动组件
  20. 嵌入式linux开发-(一)如何编写linuxC代码并运行(ubantu20.04)

热门文章

  1. caffe详解之激活函数层
  2. Java Map集合的详解
  3. 《PyQt5高级编程实战》学会使用视图委托
  4. linux 入门 及一些常用命令及常用软件安装
  5. 资源管理Placement部署(Nova)
  6. 奖项公布|Sui Demo Day香港站获胜者名单新鲜出炉
  7. Linux paste合并文件,使用多个字符作为间隔符
  8. 电子制作——一个电调的诞生之路
  9. bootstrap-列表样式
  10. mysql数据库实验+cmd界面运行基本操作总结(sql:数据增删改查,表格,视图,备份恢复)