微信小程序裁剪图片后上传

Posted 6min

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序裁剪图片后上传相关的知识,希望对你有一定的参考价值。

上传图片的时候调起裁剪页面,裁剪后再回调完成上传;

图片裁剪直接用we-cropper   https://github.com/we-plugin/we-cropper

we-cropper使用详细方法参考博文  https://we-plugin.github.io/we-cropper/#/

chooseImage: function(e)
    var _this = this;
    wx.chooseImage(
      count: 1, 
      sizeType: [‘original‘, ‘compressed‘], 
      sourceType: [‘album‘, ‘camera‘], 
      success: function (res) 
        var tempFilePaths = res.tempFilePaths[0];
        wx.navigateTo(
          url: ‘/pages/new/imgcorp?img=‘+tempFilePaths,
        );
      
    )
  ,
  uploadImage(path)
    var _this = this;
    wx.showLoading(
      title: ‘正在上传..‘,
    );
    wx.uploadFile(
      url: app.globalData.domain + ‘user/uploadimage‘,
      filePath: path,
      name: ‘file‘,
      formData: 
        ‘uid‘: app.globalData.userId
      ,
      success: function (res) 
        var data = JSON.parse(res.data);
        if (data.status == 0) 
          wx.showToast(
            title: data.err,
            duration: 2000
          );
          return false;
        
        wx.hideLoading();
        _this.setData(
          imageurls: ‘Uploads/‘ + data.urls,
          postimage: path
        );
      
    )
  ,

 

imgcorp.wxml

<!--pages/new/imgcorp.wxml-->
<template name="we-cropper">
    <canvas
            class="cropper  cutImage" 
            disable-scroll="true"
            bindtouchstart="touchStart"
            bindtouchmove="touchMove"
            bindtouchend="touchEnd"
            style="width:widthpx;height:heightpx;"
            canvas-id="id">
    </canvas>
</template>


<view class="cropper-wrapper cutImage">
    <template is="we-cropper"  data="...cropperOpt"/>
</view>
<view class="operbtns">  
  <button class="button" type="primary" bindtap="getCropperImage">完成</button> 
</view>

 

imgcorp.js

//pages /new /imgcorp.js
import WeCropper from ‘../../utils/we-cropper.js‘
const device = wx.getSystemInfoSync()
const width = device.windowWidth
const height = device.windowHeight - 100;

Page(

  data: 
    cropperOpt: 
      id: ‘cropper‘,
      width,
      height,
      scale: 2.5,
      zoom: 8,
      cut: 
        x: (width - 150) / 2,
        y: (height - 150) / 2,
        width: 150,
        height: 150
      
    

  ,

  onLoad: function (options) 
    this.data.cropperOpt.src = options.img;
    const  cropperOpt  = this.data
    new WeCropper(cropperOpt)
      .on(‘beforeImageLoad‘, (ctx) => 
        wx.showToast(
          title: ‘上传中‘,
          icon: ‘loading‘,
          duration: 20000
        )
      )
      .on(‘imageLoad‘, (ctx) => 
        wx.hideToast()
      )
      .updateCanvas();
  ,
  touchStart(e) 
    this.wecropper.touchStart(e)
  ,
  touchMove(e) 
    this.wecropper.touchMove(e)
  ,
  touchEnd(e) 
    this.wecropper.touchEnd(e)
  ,
  getCropperImage() 
    var that = this;
    that.wecropper.getCropperImage((src) => 
      if (src) 
        var pages = getCurrentPages();
        var currPage = pages[pages.length - 1];  //当前页面
        var prevPage = pages[pages.length - 2]; //上一个页面
        prevPage.uploadImage(src);
        wx.navigateBack();
      
    )
  ,
)

 

以上是关于微信小程序裁剪图片后上传的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序裁剪图片成圆形

微信小程序--实现图片上传

[转]微信小程序实现图片上传功能

微信小程序excel添加图片

微信小程序可以实现数据上传功能吗

小程序中制作类似微信端上传9图功能