uniapp生成海报

我们最后想要的效果:

1.分析结构:
因为只有二维码是后台获取的所以我们只有一个大背景图和一个二维码
2.所用技术:
uni.createCanvasContext----创建canvas对象并且将图片等元素插入到canvas中
uni.canvasToTempFilePath----将canvas对象转换成图片
uni.saveImageToPhotosAlbum----保存图片
3.操作
首先在页面中插入一个canvas标签并且设置 canvas-id、样式

<canvas canvas-id="canvas" style="width:648rpx;height: 936rpx;margin: 30rpx auto;"></canvas>

当我们页面解析完成之后执行

         async creatCanvas(url) {let that = this//创建canvas对象this.canvas = uni.createCanvasContext('canvas', this);//这里是我自己的方法下载图片//canvas中的插入的图片不能是网络地址只能是下载到本地的 let imgUrl = await this.urlTofile(url);//插入背景图 第2 3 4 5参数单位是px的所以我们要做适配 rpx转换为px 可以自定义方法 也可以使用uniapp中的方法this.canvas.drawImage(require('./static/canvas.png'), 0, 0, this.rpxTopx(648), this.rpxTopx(936));//将二维码插入到canvas中this.canvas.drawImage(imgUrl, this.rpxTopx(174), this.rpxTopx(450), this.rpxTopx(300), this.rpxTopx(300));//成功之后this.canvas.draw(true, res => {setTimeout(() => {//讲canvas转换成图片uni.canvasToTempFilePath({x: 0,y: 0,canvasId: 'canvas',fileType: 'png',quality: 1,success: success => {this.imgUrl = success.tempFilePath// that.canvas.draw()}})}, 500)});},

这里海报图就出来了也已经存到 imgUrl字段里了
然后就是保存图片

         savePhoto() {uni.saveImageToPhotosAlbum({filePath: this.imgUrl,success: () => {// uni.hideLoading();uni.showToast({title: '保存成功',icon: 'none'})},fail: () => {uni.hideLoading();},complete: () => {}});},

最后提供一下 rpx转px 和下载图片的方法

         //rpx转pxrpxTopx(rpx) {return (rpx / 750) * wx.getSystemInfoSync().windowWidth},//下载图片urlTofile(url) {return new Promise((resolve, reject) => {uni.getImageInfo({src: url,success(res) {resolve(res.path)},fail(res) {console.log("fail -> res", res)uni.showToast({title: "图片下载异常",duration: 2000,icon: "none"})}})})},

uniapp生成海报相关推荐

  1. UNI-APP 生成海报/DOM转图片

    UNI-APP 生成海报 页面部分 <template><view class='page'><input type="text" value=&qu ...

  2. 微信小程序/uni-app生成海报功能@令狐张豪

    使用技术栈:uni-app 使用官方文档提供的API:createCanvasContext(uni-app) /CanvasContext(原生) *注意:海报里用到的图片都得先使用小程序提供的下载 ...

  3. uniapp生成海报,保存相册 / 分享微信好友和朋友圈

    <view> <u-button @click="createPoster">生成海报</u-button> <u-popup :show ...

  4. uni-app生成海报并分享

    lime-painter是一款canvas海报组件,可以更轻松的生成海报 海报画板 - DCloud 插件市场 一款canvas海报组件,更优雅的海报生成方案https://ext.dcloud.ne ...

  5. uniapp页面生成海报并保存和分享微信

    Painter 画板 | LimeUiLimeUi - 增强型的 uni-app 组件库http://liangei.gitee.io/limeui-docs/components/painter/ ...

  6. uniapp中,H5端使用html2canvas生成海报

    项目中H5需要实现canvas生成海报,于是用了html2canvas,中间各种BUG,其中跨域问题一直没有处理好,后台服务器设置了支持跨域也不可以.最后解决方案是,把网络图片全部转成base64展示 ...

  7. uniapp 截图或者生成海报

    需求:uniapp移动端需要生成一张当前界面的海报 方案一:类似于手机按钮截图效果.实现代码如下: doSaveScreen() {                 let $this = this; ...

  8. uni-app app端用highcharts绘制图表,并生成海报保存到手机相册

    uni-app 打包app后 highcharts图表绘制不成功,不支持该方法,所以就考虑在app中嵌入webview h5页面,实现图表的绘制. 首先引用安装highcharts,封装成一个组件 n ...

  9. uniapp 生成商品海报并分享保存

    uniapp 生成商品海报并分享保存 <template><view class="center"><view class="icon-it ...

  10. uni-app生成分享图片( 使用 Painter 生成分享海报)

    Painter 支持文本.图片.矩形.qrcode 类型的 view 绘制. 如何使用 1.引入代码.注意:存放目录   uni-app根据不同平台插件存放目录不同. git clone https: ...

最新文章

  1. [编解码] 关于base64编码的原理及实现
  2. 往map里的vector添加_面试官问我同步容器(如Vector)的所有操作一定是线程安全的吗?我懵了!...
  3. cada0图纸框_按1:1画图后如何出A0图纸图框怎么设置?
  4. java余弦距离_使用TensorFlow实现余弦距离/欧氏距离(Euclideandistance)以及Attention矩阵的计算...
  5. Flutter 通知栏通知
  6. 网络复现之基于TPS的STN网络
  7. Macbook Air安装Win7与苹果双系统实操
  8. QT 5.15 最新安装指南(针对不同系统)
  9. 爆品铺货新出路?选品为王的电商APP如何高效拉新,实现GMV飙升
  10. 20实际最牛逼的10大算法
  11. 【行为管理篇】03. 网桥模式连接 ❀ 深信服上网行为管理
  12. Ubuntu22.04编译Android切换Python2.7版本
  13. java 音色识别_Java实现Shazam声音识别算法的实例代码
  14. mjpg-streamer移植记录
  15. 深度学习论文精读[10]:Deeplab v1
  16. web前端学习(四)——HTML5的超链接标签设置(页面间链接、锚链接以及邮件链接)
  17. 《团队-排课软件-项目进度》
  18. easyui iconCls属性值
  19. 基于matlab优化工具箱的机械优化设计,基于MATLAB优化工具箱的机械优化设计.pdf...
  20. 第07课:生活中的代理模式——帮我拿一下快递

热门文章

  1. java盘古分词_盘古分词-开源中文分词组件 搜索引擎
  2. 《炬丰科技-半导体工艺》采用湿法工艺制备的具有自洁表面的黑硅
  3. 佳佳mpg格式转换器免费版 v12.4.0.0
  4. jw player去掉logo 二次开发
  5. VMware虚机丢失vmdk文件恢复方案解析
  6. SCAU 菱形打印全集
  7. c语言 英文歌曲大赛,英文歌曲大赛活动方案
  8. foxmail 设置签名和信纸
  9. 基于微信小程序的培训机构管理系统毕业设计源码
  10. win10共享计算机时用户名和密码错误,win10系统共享文件密码错误的解决方法