c语言编程笔录

首页 >   > 笔记大全

笔记大全

uniapp微信小程序保存base64格式图片的方法

更新时间:2023-11-09
首先,需要明确的是,微信小程序内置的存储空间非常有限,因此保存图片需要考虑到存储空间的限制,并且需要考虑到小程序的性能和效率。因此,我们可以将图片转换为base64格式来保存图片,并且可以使用uniapp提供的uni.requireNativePlugin方法来实现。 第一步,将图片转换为base64格式。可以使用canvas将图片转换为base64格式,具体代码如下:

将图片转为base64格式

uni.canvasToTempFilePath({
    canvasId: 'canvasId',
    success: function(res) {
        var imgUrl = res.tempFilePath;
        wx.getFileSystemManager().readFile({
            filePath: imgUrl,
            encoding: 'base64',
            success: res => {
                console.log('data:image/png;base64,' + res.data);
            }
        });
    },
    fail: function(err) {
        console.log(err);
    }
});

首先使用canvas将图片绘制到canvas画布上,然后使用wx.getFileSystemManager().readFile方法将图片读取为base64格式,最后将base64格式图片拼接成完整的dataUrl。

第二步,使用uni.requireNativePlugin方法调用原生API实现保存base64格式图片。具体代码如下:

保存base64格式图片

uni.requireNativePlugin('saveImage', {
    data: 'data:image/png;base64,',
    success: function() {
        console.log('保存成功');
    },
    fail: function(err) {
        console.log(err);
    }
});

调用uni.requireNativePlugin方法,将调用原生API实现保存base64格式图片。其中,第一个参数为插件名,第二个参数为传递给原生API的参数,data为保存的base64编码字符串。

综上所述,uniapp微信小程序保存base64格式图片的方法是先将图片转换为base64格式,然后调用原生API实现保存。可以使用uni.canvasToTempFilePath方法将图片转换为base64格式,然后使用uni.requireNativePlugin方法调用原生API实现保存图片。需要注意的是,小程序存储空间的限制,保存图片需要谨慎考虑。