[APICloud实用教程]解决APICloud平台png照片转base64编码出错问题

902 阅读1分钟

解决APICloud平台png照片转base64编码失败问题

  • 问题描述

在使用trans模块decodeImgToBase64函数时发现转换出来的编码上传的时候,无法正确显示。当我把转换出来的编码放在在线base64转照片的时候,提示编码错误,当我对比其他base64编码时发现trans模块decodeImgToBase64少了

data:image/png;base64,

这个开头。

  • 解决方法

其实很简单,就是问题很难找出来,在结果处添加“data:image/png;base64,”字符串。

Base64Data = "data:image/png;base64," + ret.base64Str;
  • 完整代码
function fnOpenDraw() {
        drawingBoard.open({
            rect: {
                x: 10,
                y: 120,
                w: api.winWidth - 20,
                h: 360
            },
            styles: {
                brush: {
                    color: '#00f',
                    width: 6
                },
                bgColor: '#fafff0'
            },
            fixedOn: api.frameName
        });
    }

    function fnSaveDraw() {
        drawingBoard.save({
            savePath: 'fs://drawingBoard/result.png',
            copyToAlbum: false,
            overlay: true
        }, function(ret) {
            console.log(JSON.stringify(ret));
            convert2Base(ret.absolutePath);
        });
    }

    function fnClearDraw() {
        drawingBoard.clear();
    }

    function convert2Base(photoPath) {
        var trans = api.require('trans');
        trans.decodeImgToBase64({
            imgPath: photoPath
        }, function(ret, err) {
            if (ret.status) {
                console.log((ret.base64Str));
                //alert(ret.base64Str);
                Base64Data = "data:image/png;base64," + ret.base64Str;
                Base64DataOK = true;
            } else {
                console.log(JSON.stringify(ret));
            }
        });
    }