1. 程式人生 > >[APICloud實用教程]解決APICloud平臺png照片轉base64編碼出錯問題

[APICloud實用教程]解決APICloud平臺png照片轉base64編碼出錯問題

解決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));
            }
        });
    }