小程序裁剪

使用上一篇文件的cropper插件引入后

wxml

<import src="../we/we-cropper.wxml"/>
<view class="cropper-wrapper">
<template is="we-cropper" data="{{...cropperOpt}}"/>
</view>
<view class="cropper-buttons">
<button class="upload"
bindtap="uploadTap">
重新上传
</button>
<button
class="getCropperImage"
bindtap="mygetCropperImage">
确定
</button>
</view>

wxss

/* pages/cut/index.wxss */
.cropper-wrapper{
position: relative;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
justify-content: center;
height: 100%;
background-color: #e5e5e5;
}
.cropper-buttons{
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 150px;
padding: 0 20rpx;
box-sizing: border-box;
line-height: 150px;
}
.cropper-buttons .upload, .cropper-buttons .getCropperImage{
text-align: center;
z-index: 999999;
margin: 10rpx;
background-color: #36ccf9;
}

js

const Util = require(../../../../utils/util.js);
const app = getApp()
const {
regeneratorRuntime
} = global
import WeCropper from ../we/we-cropper.js;
const device = wx.getSystemInfoSync() // 获取设备信息
const width = device.windowWidth // 示例为一个与屏幕等宽的正方形裁剪框
const height = device.windowHeight -150
Page({
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 // tore/"裁剪框高度
            }
}
},
// 页面onLoad函数中实例化WeCropper
    onLoad: 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 = this
wx.chooseImage({
count: 1, // 默认9
sizeType: [compressed], // 可以指定是原图还是压缩图,默认二者都有
sourceType: [album, camera], // 可以指定来源是相册还是相机,默认二者都有
            success(res) {
const src = res.tempFilePaths[0]
self.cropper.pushOrign(src)
}
})
},
// 生成图片
    mygetCropperImage(){
var that = this;
this.cropper.getCropperImage((tempFilePath) => {
// tempFilePath 为裁剪后的图片临时路径
if (tempFilePath) {
//TODO 处理逻辑
}else{
console.log(获取图片地址失败,请稍后重试)
}
})
}
})

json

{
"navigationBarTitleText": "裁剪",
"usingComponents": {}
}

小程序裁剪

原文:https://www.cnblogs.com/shuihanxiao/p/15091417.html

以上是小程序裁剪的全部内容。
THE END
分享
二维码
)">
< <上一篇
)">
下一篇>>