千家信息网

小程序图片剪裁加旋转的方法

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了小程序图片剪裁加旋转的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇小程序图片剪裁加旋转的方法文章都会有所收获,下面我们一起来看看吧。图片剪裁毫无疑
千家信息网最后更新 2026年11月03日小程序图片剪裁加旋转的方法

这篇文章主要介绍了小程序图片剪裁加旋转的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇小程序图片剪裁加旋转的方法文章都会有所收获,下面我们一起来看看吧。

图片剪裁毫无疑问用的是canvas,但是开发过小程序的同学应该了解小程序canvas的一些坑。比如小程序canvas的设定了画布的大小后不能像web的canvas那样通过css样式来调整画布在手机上显示的大小、还有canvas不能设置太大因为可能会在某些安卓机上导致小程序崩溃、canvas绘制过大的图片会让小程序变得非常卡顿等等。

网上能找到的图片剪裁框架大多采用在canvas上面直接绘制图片,然后通过监听canvas上的用户手势来控制图片移动旋转等,这样截出来的图片会出现模糊的问题,因为canvas的太小了。一种解决方法是,在页面上再放置一个隐藏的canvas大小设为原来的两倍或者再大一点也行用来作为实际剪裁图片的canvas,当然剪裁数据都是从第一个canvas那里来的。但是这样还是有些小问题,就是canvas绘制大的图片会出现卡顿的问题,这种方案在监听用户手势的变化的时候要不停的重新绘制canvas,卡顿变得更加严重,体验非常不好。

基于上面原因,我采用的是view里面放置图片,监听view上面的手势,通过css样式控制图片的旋转、缩放和移动,最后剪裁用隐藏的canvas。先看下页面布局:

         选择图片    旋转   剪裁   

最重要的操作是图片在view中的位置变化如何在canvas中保持一致再剪裁出来,图片相对与view中的左上角坐标、图片的长度和宽度我们都是知道的,还有旋转值通过用户手势变化计算出来,旋转的时候将画布的中心移动到图片的中心点再旋转就行了。

let ctx = wx.createCanvasContext('imgcrop',this);   let cropData = _this.data.stv;   ctx.save();   // 缩放偏移值   let x = (_this.data.originImg.width - _this.data.originImg.width * cropData.scale) / 2;   let y = (_this.data.originImg.height - _this.data.originImg.height * cropData.scale) / 2;   //画布中点坐标转移到图片中心   let movex = (cropData.offsetX + x) * 2 + _this.data.originImg.width * cropData.scale;   let movey = (cropData.offsetY + y) * 2 + _this.data.originImg.height * cropData.scale;   ctx.translate(movex, movey);   ctx.rotate(cropData.rotate * Math.PI / 180);   ctx.translate(-movex, -movey);      ctx.drawImage(_this.data.originImg.url, (cropData.offsetX + x) * 2, (cropData.offsetY + y) * 2, _this.data.originImg.width * 2 * cropData.scale, _this.data.originImg.height * 2 * cropData.scale);   ctx.restore();

关于"小程序图片剪裁加旋转的方法"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"小程序图片剪裁加旋转的方法"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

图片 程序 方法 手势 画布 大小 用户 知识 问题 卡顿 变化 监听 移动 内容 坐标 时候 样式 篇文章 页面 控制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 喔噻互联网科技有限公司 伟宏互联网科技 金诺互联网科技 金融科技与互联网金融 互联网 科技创新 迪茉互联网科技 亿人帮互联网科技 金融科技和互联网金融 顺网科技2021年互联网排名 互联网巨头投资的硬核科技 科技赋能互联网健康 互联网科技公司营业执照怎么办理 山东有哪些互联网科技公司 2021世界互联网领先科技成果发布 陕西九四连强互联网科技有限公司 艺电能源互联网科技有限公司招聘 互联网科技大会大佬 互联网科技创业计划的风险分析 高科技和互联网的现代国家 博彦科技互联网金融 互联网的科技 佩信高科技互联网 成都玖崟互联网科技有限公司乐商圈怎么样 重庆威客帮互联网科技 玉溪新华互联网科技好不好 张召忠谈中国互联网科技 九思连强互联网电子科技有限公司 普陀区互联网教育科技管理办法 盐城市攀科互联网科技有限公司
0