您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

小程序中将base64图片保存到相册中的方法介绍

2024/3/2 22:12:37发布23次查看
本篇文章给大家带来的内容是关于小程序中将base64图片保存到相册中的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
一、授权获取
1、相关api
wx.getsetting
wx.authorize
2、授权获取流程一般为
是否有该权限 ——> 若无 ——> 调起授权弹窗 ——> 同意 ——> 使用相关api
(如果用户拒绝授权则可使用wx.opensetting引导用户前往授权设置页授权)
3、代码实现
static async weauthcheck(type = 'address') {    let resgetting = await new promise((resolve, reject) => {        wepy.getsetting({            success: res => {                // console.log(res, 'getsetting')                if (res.authsetting.hasownproperty(`scope.${type}`) && res.authsetting[`scope.${type}`]) {                    resolve({                        succeeded: true                    })                } else {                    wepy.authorize({                        scope: `scope.${type}`,                        success: () => {                            resolve({                                succeeded: true                            })                        },                        fail: err => {                            // console.log(err, 'errrrr')                            resolve({                                succeeded: false,                                err: err                            })                        }                    })                }            },            fail: err => {                resolve({                    succeeded: false,                    err: err                })            }        })    })    console.log('getsetting res: \n', resgetting)    return resgetting}
二、写入临时文件
1、相关api
文件系统
writefile
2、参数encoding 用于说明 写入的参数data的格式是什么,并非是将data按encoding的形式写入。在这里我们应该指定encoding为base64
3、代码实现
// 先获得一个实例  this.filemanager = wx.getfilesystemmanager()this.filemanager.writefile({    filepath: `${wx.env.user_data_path}/qrcode_${timestamp}.png`,    data: data,    encoding: 'base64',    success: res => {        console.log('res: \n:', res)    },    fail: res => {        console.log(res)    }})
三、格式化字符串
1、base64字符串的格式: data:image/png;base64,...........,逗号前面这一段为格式说明,用于说明后续的内容格式是图片格式为png的base64格式。
2、如果直接将整一串字符传入,虽然可以保存成功,但是将导致图片文件格式错误。因此再做一步切割操作
let startidx = this.qrcode.indexof('base64,') + 7
四、完整实现
async ontapsaveqrcode() { let startidx = this.qrcode.indexof('base64,') + 7 let rescheck = await this.$weauthcheck('writephotosalbum') let timestamp = new date().gettime() let self = this if (rescheck.succeeded) { wepy.showloading() this.filemanager.writefile({ filepath: `${wx.env.user_data_path}/qrcode_${timestamp}.png`, data: this.qrcode.slice(startidx), encoding: 'base64', success: res => { console.log('res: \n:', res) wx.saveimagetophotosalbum({ filepath: `${wx.env.user_data_path}/qrcode_${timestamp}.png`, success: res => { self.$emit('save-qrcode-success') wepy.showtoast({ title: '保存成功' }) }, fail: err => { console.log(err) if (!err.errmsg.includes('cancel')) { wepy.showtoast({ title: err.errmsg, icon: 'none' }) } }, complete: () => { wepy.hideloading() } }) }, fail: res => { wepy.hideloading() console.log(res) } }) }}
以上就是小程序中将base64图片保存到相册中的方法介绍的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product