微信小程序canvas缩放(微信小程序之html5 canvas绘图并保存到系统相册)
类别:Web前端 浏览量:1672
时间:2021-09-30 00:13:05 微信小程序canvas缩放
微信小程序之html5 canvas绘图并保存到系统相册开始实现之前先上个效果图
tips
1.网络图片需先配置download域名,可通过wx.getImageInfo
转为临时路径;
2.个人习惯问题,我习惯使用async-await语法,所以需要引入regenerator这个库,使用方式可网上查。
一、封装通用微信api返回为Promise对象
/datas/common.js
// 封装获取微信图片信息。 export const getWxImageInfo = (imgPath) => { return new Promise((resolve, reject) => { wx.getImageInfo({ src: imgPath, success: res => { resolve(res) }, fail: res => { reject(res) } }) }) } // 封装获取节点选择器信息 export const getSelectQurey = (queryStr) => { return new Promise(resolve => { var query = wx.createSelectorQuery(); query.select(queryStr).boundingClientRect(); query.exec(res => { resolve(res) }) }) } // 封装把画布导出生成指定大小的图片 export const canvasToTempFilePath = (width, height, canvasId, fileType = .jpg" alt="微信小程序canvas缩放(微信小程序之html5 canvas绘图并保存到系统相册)" border="0" />
二、视图的实现
.wxml
<view class="icon-download" catchtap="getCanvas">点击生成图片</view> <!-- 二维码大图 --> <view class='shade' wx:if="{{isShowCanvas}}"> <view class='qr-code'> <canvas class='qr-canvas' canvas-id="qrCanvas" id="qrCanvas"></canvas> <view class='qr-btn'> <view class='qr-btn-save' catchtap='saveImageToPhotosAlbumFunc'>保存图片,分享到朋友圈</view> <view class='qr-btn-cancel' catchtap='hideCanvas'>取消</view> </view> </view> </view> <!-- 二维码大图.end -->
.wxss
/* 查看大图 */ .shade { width: 100%; height: 100%; background-color: rgba(240, 235, 235, 0.5); position: fixed; z-index: 100; top: 0; left: 0; } .qr-code { width: 600rpx; height: 1000rpx; background-color: #fff; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); /* margin: 30rpx auto; */ } .qr-canvas { display: block; background-color: #fff; margin: 0 auto; width: 600rpx; height: 900rpx; } .qr-btn { width: 600rpx; height: 100rpx; line-height: 100rpx; margin: 0 auto; font-size: 28rpx; color: #fff; display: flex; background-color: #658dc5; } .qr-btn-save { flex: 0 0 500rpx; text-align: center; border-right: 1rpx solid #fff; } .qr-btn-cancel { text-align: center; flex: 0 0 100rpx; }
三、创建canvas并保存到系统相册
tips
商品图是正方形的,所以这里商品图的宽高都用canvas的宽文字不能换行,这里只是简单的处理了一下
注意: wx.canvasToTempFilePath(Object object, Object this)
这个的使用,文档有一句话需要注意的:“把当前画布指定区域的内容导出生成指定大小的图片。在 draw() 回调里调用该方法才能保证图片导出成功。”
const app = getApp() const regeneratorRuntime = app.globalData.regeneratorRuntimeconst const util = require('../../utils/util.js') import { getSelectQurey, getWxImageInfo, canvasToTempFilePath, saveImageToPhotosAlbum } from '../../datas/common.js' Page({ data: { isShowCanvas: false, // 是否显示canvas wxaCode: 'https://xxx..jpg" alt="微信小程序canvas缩放(微信小程序之html5 canvas绘图并保存到系统相册)" border="0" />
写得比较简单,因为主要是方便自己做记录的,所以也没有考虑到过多的使用场景。
总结
以上所述是小编给大家介绍的微信小程序之html5 canvas绘图并保存到系统相册,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
您可能感兴趣
- pythondjango后台管理(基于腾讯云服务器部署微信小程序后台服务Python+Django)
- 微信小程序css使用技巧(微信小程序 CSS filter滤镜的使用示例详解)
- 小程序实现左右滑动窗口(小程序实现分页效果)
- 小程序ui图与移动ui(AmazeUI 缩略图的实现示例)
- 微信小程序即时聊天功能怎么实现(微信小程序实现聊天室功能)
- 微信小程序左右翻页效果(微信小程序实现九宫格效果)
- 小程序可滑动弧形进度条(小程序实现文字循环滚动动画)
- vue实现商品详情讲解(京东 Vue3 组件库支持小程序开发的详细流程)
- python编写的小程序(几个适合python初学者的简单小程序,看完受益匪浅!推荐)
- wx小程序请求封装(小程序wx.getUserProfile接口的具体使用)
- 微信小程序通知验证签名方法(微信小程序实现电子签名)
- 聊天室python小程序(用Python写一个模拟qq聊天小程序的代码实例)
- 微信小程序引用模板的函数(微信小程序页面与组件之间信息传递与函数调用)
- 微信小程序静态页面详情(微信小程序基础教程之echart的使用)
- h5打开小程序点允许(html5跳转小程序wx-open-launch-weapp踩坑)
- python抽奖代码教程(python实现抽奖小程序)
- 心理学 四个金蟾,哪个最招财 测你今生的运势有多棒(心理学四个金蟾)
- 吉善缘《聚宝金蟾》金蟾招财摆件 三足全铜蟾蜍客厅店铺开业礼品(吉善缘聚宝金蟾金蟾招财摆件)
- 招财化煞神兽,金蟾变了(招财化煞神兽金蟾变了)
- 26岁杨紫的白素贞遇上24岁鞠婧祎,哪个最美(26岁杨紫的白素贞遇上24岁鞠婧祎)
- 鞠婧祎和杨紫两种风格的女生,你心里谁比较美(鞠婧祎和杨紫两种风格的女生)
- 三千年第一美女鞠婧祎出演白素贞pk杨紫,颜值胜赵雅芝王祖贤(三千年第一美女鞠婧祎出演白素贞pk杨紫)
热门推荐
- h5微信手机端debug模式(iOS微信H5页面橡皮回弹效果的踩坑记录)
- php目录使用教程学习(PHP FileSystem 文件系统常用api整理总结)
- css中的margin属性(css布局之负margin妙用及其他实现)
- vue 父组件传值(Vue两个同级组件传值实现)
- Serif和Sans-serif的区别
- cssdisplay覆盖规律(css解决display:inline-block;产生的缝隙间隙的方法)
- docker 挂载目录权限(docker windows10 共享目录挂载失败的解决方案)
- MongoDB的连接字符串
- 宝塔linux面板部署防火墙后网页打不开报http564错误的解决办法(宝塔linux面板部署防火墙后网页打不开报http564错误的解决办法)
- css3旋转动画教学(css3动画效果抖动解决方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9