【uni-app】App实现二维码分享图合成

写在前面, 该文章目前仅支持合成特定数量的分享图, 不支持随意数量分享图合成

一. 背景

app内实现一个邀请拉新功能, 需要根据每个用户生成各自的二维码, 并且把二维码合成到海报, 生成3张海报, 用户三选一进行分享. 今天我们只说其中一个功能实现 ---- 合成多张二维码分享图

二. 功能实现

*** 生成单张二维码分享图

单张可以参考这位博主内容 : https://dandelioncloud.cn/article/details/1419298504186597377/

*** 生成单张二维码分享图

在上面单张的基础上, 我做了改动, 实现特定数量分享图的生成

前提 : 安装插件 – https://ext.dcloud.net.cn/plugin?id=2434

模板
<button type="default" @click="beginCanvasBatch">开始批量合成</button><button style="margin-top: 50rpx;" @click="save(0)">保存图片1</button>
<button style="margin-top: 50rpx;" @click="save(1)">保存图片2</button>
<button style="margin-top: 50rpx;" @click="save(2)">保存图片3</button>// 生成后的图片列表
<view v-for="(itemImg, index) in finallyImgList" :key="index + 'img'"><image :src="itemImg" mode="widthFix"></image></view>// 具体作用不清楚, 组件实际不在界面展示出来, 估计只是为了生成图片的一个占位
// 这里用不了v-for循环,所以只能固定合成的数量, 也可能是我方式错误, 如果可以告知, 这样写着实不太优雅
<mosowe-canvas-image ref="mosoweCanvasComponents0" @canvasImage="_canvasImage0" :lists="imageList[0]" height="426" width="296" /><mosowe-canvas-image ref="mosoweCanvasComponents1" @canvasImage="_canvasImage1" :lists="imageList[1]" height="426" width="296" /><mosowe-canvas-image ref="mosoweCanvasComponents2" @canvasImage="_canvasImage2" :lists="imageList[2]" height="426" width="296" />

script

<script>
import mosoweCanvasImage from '@/components/mosowe-canvas-image/mosowe-canvas-image';
export default {comments: {mosoweCanvasImage},data() {return {finallyImgList: [], // 合成后的图片listimageList: [], // 整合的未合成的图片listlogoImage: {type: 'image',content: 'http://xxx.jpg',width: 15,height: 15,x: 42,y: 352,arc: false,arcX: 0,arcY: 0,arcR: 0}, // logo};},computed: {qrImage() {var userInfo = getApp().globalData.global_user;          var id = userInfo.id return {type: 'qr',content: `https://xxx?id=${id}`,text: '这是一个二维码',width: 60,height: 60,x: 20,y: 330,arc: false,arcX: 0,arcY: 0,arcR: 0}; // 二维码}},methods: {// 开始生成beginCanvasBatch() {let this_ = this;var area;this.imageList.map((item, i) => {setTimeout(function() {area = 'mosoweCanvasComponents' + i;this_.$refs[area].createCanvas();}, 2000 * i);});},_canvasImage0(e) {this.finallyImgList = [];console.log('图片0', e);this.finallyImgList.push(e);},_canvasImage1(e) {console.log('图片1', e);this.finallyImgList.push(e);},_canvasImage2(e) {console.log('图片2', e);this.finallyImgList.push(e);},formatImageList() {this.imageList = [[{type: 'image',content: 'https://xxx.jpg',width: 296,height: 426,x: 0,y: 0},this.qrImage,this.logoImage],[{type: 'image',content:'http://xxx.jpg',width: 296,height: 426,x: 0,y: 0},this.qrImage,this.logoImage],[{type: 'image',content:'http://xxx.jpg',width: 296,height: 426,x: 0,y: 0},this.qrImage,this.logoImage]];},save(i) {let url = this.finallyImgList[i];uni.saveImageToPhotosAlbum({filePath: url,success: () => {uni.hideLoading();uni.showToast({title: '图片已保存'});},fail: () => {uni.hideLoading();uni.showToast({title: '图片保存失败'});}});},},onLoad() {this.formatImageList();}
};
</script>

三. 效果

底图+二维码+logo

【uni-app】App实现二维码分享图合成(支持单张或多张)相关推荐

  1. jquery.qrcode生成带logo的二维码,同时生成带二维码的好友分享图片(js与canvas实现二维码和图片合成的海报)

    首先给大家看一下效果图(纯jQuery前端技术): 提供一下demo 源代码和jquery.qrcode文件下载: https://download.csdn.net/download/qq15577 ...

  2. uniapp中H5网页和打包app分别生成二维码

    一.h5网页中生成二维码业务 引入"qrcodejs2.js":npm install qrcodejs2: <template><view><vie ...

  3. 安卓app和苹果app共用一个二维码

    应项目要求,现在安卓app和苹果app共用一个二维码,对外提供下载: <html><head><meta http-equiv="Content-Type&qu ...

  4. 小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈

    小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈 一.概述 需要用到的生成二维码组件(可自行下载添加到小程序根目录utils里):https://github.com/demi52 ...

  5. uni-app微信小程序扫普通二维码分享小程序

    这里需要扫普通二维码分享的话就需要先产生二维码了 文档:https://github.com/yingye/weapp-qrcode 1.绘制二维码 我这里使用的是资源是weapp.qrcode.es ...

  6. 怎么将在线视频做成二维码分享?二维码分享视频怎么操作?

    现在很多人都会将视频转二维码图片后,分享给他人扫码查看,极大的提升了信息传递的便捷性,那么视频生成二维码的操作方法大家都知道吗?下面就让小编给大家分享一款二维码制作工具,支持多种二维码生成功能,一键即 ...

  7. 如何利用二维码分享会议资料

    iamlaosong文 在当今智能手机普及年代,完全可以利用手机接收会议资料.当然方式有很多种,电子邮件.QQ群共享等都可以.这儿说一个将资料存放到云盘,再利用二维码分享的方式.这种方式方便,迅速,无 ...

  8. 通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成

    通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成. 主要实现技术: 1.大文件视频分 ...

  9. 二维码生成器和二维码分享

    <html> <head><title>二维码生成器-</title> </head> <meta name="viewpo ...

最新文章

  1. Elasticsearch: Five Things I was Doing Wrong
  2. vant 软键盘_移动端页面输入底部被软键盘遮挡问题
  3. 关于Android Listview的问题
  4. antd动态隐藏表格中的一列_有很多excel表格,如何快速合并到一张表格里?
  5. Maven组件通过命令上传本地和私有仓库
  6. LOJ.2865.[IOI2018]狼人(Kruskal重构树 主席树)
  7. 【今日CV 计算机视觉论文速览】Thu, 7 Mar 2019
  8. python字符串可以使用+进行计算吗_python用正则对字符串进行运算
  9. CentOS7完全卸载mysql5.7重装8.0
  10. Git学习笔记之廖雪峰Git教程
  11. 关于初高中虚拟仿真实验室解决方案
  12. 如何解决局域网共享报错0x80004005
  13. 方程求全微分结果和法向量、切向量的关系
  14. 制作业信息化为什么难施行?
  15. idea 光标 快捷键_idea 快捷键汇总
  16. 网络层-1、网络层功能概述
  17. 电线电缆材料stru结构检测知识大全
  18. BIOS调整服务器性能模式,BIOS优化性能提升明显 菜鸟必看的BIOS优化设置教程
  19. 5年 Android 面试题
  20. java实现微信朋友圈点赞统计,微信朋友圈点赞测试用例

热门文章

  1. 行人属性识别二:添加新网络训练和自定义数据集训练
  2. (第一篇)pytorch数据预处理三剑客之——Dataset,DataLoader,Transform
  3. SAP PI PO 接口配置主体传播 RSXMB_CONFIG_PP_NEW
  4. 用户画像 | 标签数据存储之Elasticsearch真实应用
  5. 别忽略国美之争的真正遗产
  6. 解决docker容器中文字符乱码问题
  7. 考研完形填空 方法技巧*
  8. Head First 设计模式学习笔记 一 策略模式
  9. STM32F4 FPU浮点运算单元
  10. odoo用户使用——采购