热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

git裁切_【微信小程序】图片裁剪前端裁剪后端裁剪

Cropping小程序码组件介绍微信小程序裁剪组件,支持前端裁剪和后端裁剪两种方式1.前端裁剪:将裁剪框指定的区域,单独生成图片ÿ

Cropping

小程序码

组件介绍

微信小程序裁剪组件,支持前端裁剪和后端裁剪两种方式

1.前端裁剪:将裁剪框指定的区域,单独生成图片,获取裁剪图片的临时文件路径

2.后端裁剪:获取裁剪框相对于原图的像素坐标位置,将裁剪区域坐标以及原图临时文件路径,传到后端进行图片裁剪

git地址

软件架构

使用微信小程序自定义组件开发

使用说明

目录结构

image

使用步骤

1.下载组件源代码,放入小程序里自己定义的组件文件夹(例如/component)

2.创建图片裁剪界面(例如/pages/image)

3.image.json引入image-cropper组件

{

"usingComponents": {

"image-cropper":"/component/image-cropper/index"

}

}

4.image.wxss设置背景色为黑色

page{

background-color: black;

}

.white{

color: #fff;

font-size: 30rpx;

}

.black{

color: #333333;

font-size: 30rpx;

margin-top:10rpx;

}

5.image.wxml

添加image-cropper标签,如下

可以在image-cropper标签内添加操作按钮,如下

裁剪框宽高比值

裁剪图片质量

等比缩放

自由缩放

获取裁切参数

获取裁切图临时文件地址

6.image.js

首先需要在onLoad方法中,设置裁剪标签属性

// 裁切对象

var cropper

Page({

/**

* 生命周期函数--监听页面加载

*/

onLoad: function (options) {

// 根据标签id,获取到image-cropper对象,存储在全局变量cropper中

cropper = this.selectComponent("#my-cropper");

// 设置标签属性

this.setData({

// 从图片选择界面传原图临时文件地址给src

src: options.imagePath,

// 设置裁剪框宽高比值为 1(宽:高=1:1=1)

aspectRatio: 1,

// 设置是否等比缩放

isProportion: true,

// 设置裁剪后的图片质量

quality: 1

})

},

})

然后添加按钮相应的绑定方法

// 裁切对象

var cropper

Page({

/**

* 页面的初始数据

*/

data: {

},

/**

* 生命周期函数--监听页面加载

*/

onLoad: function (options) {

// 根据标签id,获取到image-cropper对象,存储在全局变量cropper中

cropper = this.selectComponent("#my-cropper");

// 设置标签属性

this.setData({

src: options.imagePath,

aspectRatio: 1,

isProportion: true,

quality: 1

})

},

btn1(e){

// 图片宽高比值

this.setData({

aspectRatio: e.detail.value.toFixed(1)

})

},

btn2(e){

// 图片质量

this.setData({

quality: e.detail.value.toFixed(1)

})

},

btn3(){

// 打开等比缩放

this.setData({

isProportion: true

})

},

btn4(){

// 关闭等比缩放

this.setData({

isProportion: false

})

},

btn5(){

// 调用image-cropper对象的getResults函数,获取裁剪参数

cropper.getResults(res =>{

console.log(res)

})

},

btn6(){

// 调用image-cropper对象的getImagePath函数,获取裁剪后图片的地址

cropper.getImagePath(res =>{

console.log(res)

})

}

})

组件文档

标签属性

参数

类型

默认值

说明

src

String

-

图片路径

aspectRatio

Number

1

裁剪框宽高比值,范围 [0.4,3]

isProportion

Boolean

false

是否开启宽高等比缩放

quality

Number

1

前端裁剪的裁剪图片质量,范围 (0,1]

标签对象函数

1.获取裁剪结果参数

getResults(res=>{ })

获取到的res如下

{

"crop":{

"width": 1000, //裁剪完成的图片宽

"height": 1000, //裁剪完成的图片高

"top": 100, //裁剪完成的图片左上角,到原图顶部的距离

"left": 200 //裁剪完成的图片左上角,到原图左边的距离

},

"originalImageInfo":{

"width": 1920, //原图宽

"height": 1080, //原图高

"path": "images/1.jpg", //原图路径

"type": "jpeg", //原图类型

"orientation": "up" //原图拍摄设备方向

}

}

获取到的裁剪参数的对应关系图

获取到裁剪参数后,将原图以及裁剪参数传到后台进行裁剪

2.获取裁剪图片地址

getImagePath(res=>{ })

获取到的res如下

{ "path" : "http://tmp/wxb172f5d66edf27aa.jpg" }



推荐阅读
  • PHP中元素的计量单位是什么? ... [详细]
  • 计算 n 叉树中各节点子树的叶节点数量分析 ... [详细]
  • 在微信小程序中,页面的加载机制与传统应用类似,每次打开新页面时都会创建一个新的视图对象并进行叠加。当用户点击返回按钮时,当前页面会被关闭并从堆栈中移除。这一过程涉及页面管理与资源释放,确保了用户体验的流畅性和系统的稳定性。微信小程序支持同时打开的页面数量有限制,最多可同时保持10个页面的打开状态,以避免内存溢出和性能下降。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文详细解析了如何使用 jQuery 实现一个在浏览器地址栏运行的射击游戏。通过源代码分析,展示了关键的 JavaScript 技术和实现方法,并提供了在线演示链接供读者参考。此外,还介绍了如何在 Visual Studio Code 中进行开发和调试,为开发者提供了实用的技巧和建议。 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • 微信支付授权目录配置详解及操作步骤
    在使用微信支付时,若通过WeixinJSBridge.invoke方法调用支付功能,可能会遇到“当前页面URL未注册”的错误提示,导致get_brand_wcpay_request:fail调用微信JSAPI支付失败。为解决这一问题,需要正确配置微信支付授权目录,确保支付页面的URL已成功注册。本文将详细介绍微信支付授权目录的配置步骤和注意事项,帮助开发者顺利完成支付功能的集成与调试。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 在本文中,我们将探讨如何使用 UniApp 封装小程序 API 请求接口的最佳实践。通过创建 `request.js` 文件,定义基础 URL 并传入后端提供的 URL 作为请求参数。同时,配置请求方法(如 GET、POST)和请求头(例如包含 token 的认证信息),以实现高效、安全的 API 调用。此外,我们还将介绍如何处理请求和响应的错误,以及如何优化请求性能,确保应用在不同平台上的兼容性和稳定性。 ... [详细]
  • HTML5大文件传输技术深度解析与实践分享
    本文深入探讨了HTML5在Web前端开发中实现大文件上传的技术细节与实践方法。通过实例分析,详细讲解了如何利用HTML5的相关特性高效、稳定地处理大文件传输问题,并提供了可供参考的代码示例和解决方案。此外,文章还讨论了常见的技术挑战及优化策略,旨在帮助开发者更好地理解和应用HTML5大文件上传技术。 ... [详细]
  • 如何判断一个度序列能否构成简单图——哈维尔-哈基米算法的应用与解析 ... [详细]
author-avatar
义勇军2012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有