uniapp 二维码或图片转成base64格式并分享到qq或微信_兄弟连勇闯天涯的博客-程序员宅基地

技术标签: 二维码图片转base64  uni-app  

断断续续的搞了两次,终于把这个功能实现了。
1.二维码的插件
在这里插入图片描述
2.转base64格式的工具(图像转换工具,可用于图像和base64的转换)
在这里插入图片描述
3.uniapp安装
在这里插入图片描述

// 以下路径需根据项目实际情况填写
import { pathToBase64, base64ToPath } from '../../js/image-tools/index.js'

4.pathToBase64
从图像路径转换为base64,uni-app、微信小程序和5+APP使用的路径不支持网络路径,如果是网络路径需要先使用下载API下载下来。

pathToBase64(path)
  .then(base64 => {
    console.log(base64)
  })
  .catch(error => {
    console.error(error)
  })

5.base64ToPath
将图像base64保存为文件,返回文件路径。

base64ToPath(base64)
  .then(path => {
    console.log(path)
  })
  .catch(error => {
    console.error(error)
  })

6.可以利用promise来串行和并行的执行多个任务

// 并行
Promise.all(paths.map(path => pathToBase64(path)))
  .then(res => {
    console.log(res)
    // [base64, base64...]
  })
  .catch(error => {
    console.error(error)
  })
// 串行
paths.reduce((promise, path) => promise.then(res => pathToBase64(path).then(base64 => (res.push(base64), res))), Promise.resolve([]))
  .then(res => {
    console.log(res)
    // [base64, base64...]
  })
  .catch(error => {
    console.error(error)
  })

7.我是将二维码的图片转成base64格式

methods: {
			showfromchild(data图片的url){
				var that=this;
				pathToBase64(data)
				.then(base64 => {
						that.qrvalimg=base64;
				})
				.catch(error => {
					console.error(error)
				})
			
			},

8.然后通过plus.nativeObj.Bitmap()这个函数分享base64格式的图片(代码有点low请见谅)

	var bitmap = new plus.nativeObj.Bitmap();
		bitmap.loadBase64Data(that.qrvalimg, function() {
		bitmap.save("DCIM/a.jpg", {
		overwrite: true
		}, function(i) {
		uni.hideLoading()
		uni.share({
		provider: "sinaweibo",
		type: 0,
		summary: '这是我的收款码',
		imageUrl: i.target,
		success: function(res) {
		console.log("success:" + JSON.stringify(res));
		},
		fail: function(err) {
		console.log("fail:" + JSON.stringify(err));
		}
		});
		// console.log('保存图片成功:' + JSON.stringify(i));
		}, function(e) {
		console.log('保存图片失败:' + JSON.stringify(e));
		});
		}, function(e) {
		console.log('绘制图片失败:' + JSON.stringify(e));
		});

在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/endianzhijia/article/details/88396220

智能推荐

PCB投板的必要条件_pcb走线评审完是不是可以投板了_AirCity123的博客-程序员宅基地

PCB投板的必要条件作者:AirCity [email protected] 本文所有权归作者Aircity所有原理图是否已fix,并且评审完毕,遗留问题风险是否不影响此次投板结构要素图是否已完成,主要是确定板框,确认堆叠是否有干涉。工程需求表单是否已完成,确认板厂,几层几阶,成本。SI/PI仿真报告是否已完成,遗留问题风险是否不影响此次投板。特别注意需要高通..._pcb走线评审完是不是可以投板了

linux下不让使用rm命令_shuai0845的博客-程序员宅基地

不准使用rm题目:linux下面如何实现,当用户执行rm命令时,就显示“do not use rm command”。答案:# alias rm='echo "do not use rm command"'

蓝牙UUID | BLE蓝牙的UUID列表_蓝牙uuid列表_Charmve的博客-程序员宅基地

最近在研究BLE蓝牙,顺便把官网上的UUID列表对应类型翻译了一下,水平一般(大多采用有道、谷歌翻译,外加自己的理解对翻译进行校正),仅做参考。如果有翻译不正确的地方还望指出。GATT服务:官网地址:https://www.bluetooth.com/specifications/gatt/services/名称中文释义统一类型ID分配的号码规范Generic Access通用访问org.bluetooth.service.generic_access0x1800GS_蓝牙uuid列表

特征值、特征根、本征值_线性代数特征根_忧郁奔向冷的天的博客-程序员宅基地

线性代数狭义特征值问题 Ax = λx 广义特征值问题Ax = λBxλ为特征值,x为λ对应的特征向量在求解特征值时|A-λE|=0 转化为求解特征多项式的特征根高数特征根的概念在求解二阶常微分方程中也有二阶微分方程x'' + px' + qx = 0 对应的特征方程 r^2 + p*r + q = 0控制方程在控制方程中也有特征根二阶微分方程x'' + px' + qx = 0 经过拉氏变换 得到特征方程 s^2 + p*s+ q = 0特征方程就是传递函数..._线性代数特征根

c#创建文件夹时无法访问路径,路径拒绝访问_仰望星空的代码的博客-程序员宅基地

一、问题在某个目录路径下创建文件夹及其子文件夹时,产生无法访问路径的错误或路径拒绝访问的错误。二、产生问题的原因程序在当前的目录下创建文件夹,对该目录的权限不够。三、解决方法修改该目录的everyone用户权限将权限提升至修改或完全控制。

【MATLAB基础】并行计算parfor中的变量_明天已在HiaHia的博客-程序员宅基地

parfor中的slice有特定的使用约束>> a=zeros(100,1);parfor ii = 1:50 a(2*ii)=1;end以上代码运行出错,信息如下:Error: Unable to classify the variable 'a' in the body of the parfor-loop. For more information, see Parallel for Loops in MATLAB, "Solve Variable Classi.

随便推点

HarmonyOS(鸿蒙)运动手表—从零实现投骰子小游戏-程序员宅基地

前言:生活中我们会面临很多选择,我们会在人生的大选择上深思熟虑,也会在一些芝麻蒜皮的小选择上纠结万分,为了帮助选择困难户在日常的小纠结中做出选择,我们将摇骰子这个经典的小游戏(也可以说是一个小工具)移植到华为手表上,”不知道今天是吃鸡肉还是牛肉?摇个骰子吧!”。这是我们最初制作它的想法,当然它也还有其他用处,比如说随机分组(例如:点数为奇数的一组,点数为偶数的一组)。小组成员likaijie12138JiaYi__xixiwx13415801099GTH1144754040最终效果图:

POJ 1785 Binary Search Heap Construction (线段树)_Jinx_jinx_again的博客-程序员宅基地

题目大意:给出的东西要求建立一个堆,使得后面的数字满足堆的性质,而且字符串满足搜索序思路分析:用线段树的最大询问建树。在建树之前先排序,然后用中序遍历递归输出。注意输入的时候的技巧。。。#include #include #include #include #define lson num<<1,s,mid#define rson num<<1|1,m_poj 1785

springcloud微服务体系(一)— 基于security和jwt实现认证及鉴权服务_不行换啤的的博客-程序员宅基地

文章目录知识点讲解具体实现一、业务流程知识点讲解传统的单体应用体系下,应用是一个整体,一般针对所有的请求都会进行权限校验。请求一般会通过一个权限的拦截器进行权限的校验,在登录时将用户信息缓存到 session 中,后续访问则从缓存中获取用户信息但在微服务架构下,一个应用会被拆分成若干个微应用,每个微应用都需要对访问进行鉴权,每个微应用都需要明确当前访问用户以及其权限。尤其当访问来源不只是浏览...

dpkg 删除软件_Ubuntu如何使用dpkg命令卸载软件-程序员宅基地

本经验以卸载Ubuntu下的办公软件libreoffice为例子,演示怎样使用dpkg进行卸载软件。查看安装的软件1、查看dpkg的帮助。选择 dpkg -l来查看软件的状态。选择 dpkg -P来卸载软件。因为dpkg --remove只是删除安装的文件,但不删除配置文件。而dpkg --purge则安装文件和配置文件都删除。2、先列举出libreoffice相关的软件,看哪些是已经安装的。命令..._dpkg卸载软件

Freeswitch 命令和Appliation 应用的介绍_freeswitch application_qzlink的博客-程序员宅基地

mod_commandshttps://freeswitch.org/confluence/display/FREESWITCH/mod_commandsFreeSwitch控制台常用命令(来自freeswitch中文wiki) 挺有用http://blog.csdn.net/u014260745/article/details/21980583Free_freeswitch application

The 16th Heilongjiang Provincial Collegiate Programming Contest A And RMQ --线段树_you are given a sequence consisting of n integer_Weach的博客-程序员宅基地

The 16th Heilongjiang Provincial Collegiate Programming Contest#include<bits/stdc++.h>#include <unordered_map>using namespace std;template<class...Args>void debug(Args... args) {//Parameter pack auto tmp = { (cout << args &_you are given a sequence consisting of n integers { } {a i }.

推荐文章

热门文章

相关标签