热门标签 | 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" }



推荐阅读
  • 自 Node.js 6.3 版本起,调试功能已内置在核心模块中,无需额外安装 node-inspector 等工具。通过简单的命令即可启动调试模式,并利用 Chrome 浏览器进行高效的代码调试。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 该平台旨在为大型企业提供一个高效、灵活且可扩展的分布式微服务架构解决方案。它采用模块化、微服务化和热部署的设计理念,结合当前最先进且无商业限制的主流开源技术,如Spring Cloud、Spring Boot2、MyBatis、OAuth2和Element UI,实现前后端分离的系统管理平台。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 探讨在循环中调用$.post()时,回调函数为何会在循环结束后才开始执行,并提供解决方案和优化建议。 ... [详细]
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社区 版权所有