2014-05-22 2 views
0

이 코드를 사용하여 내 이미지 바이너리를 base64로 변환하려고 시도했지만 성공하지 못했습니다.Base64 - 유효하지 않은 인코딩

잘못된 base64 문자열이 있습니다. 이 도구를 사용하여 확인하십시오.

http://www.freeformatter.com/base64-encoder.html

var img = document.getElementById('image'); 

function getBase64Image(img) { 
var canvas = document.createElement("canvas"); 
canvas.width = img.width; 
canvas.height = img.height; 
var ctx = canvas.getContext("2d"); 
ctx.drawImage(img, 0, 0); 
var dataURL = canvas.toDataURL("image/png"); 
return dataURL.replace(/^data:image\/(png|jpg);base64,/, ""); 
} 

이 솔루션은 날 전혀 도움이되지 않습니다. 나는 곧 답변을 얻을 수 있기를 바랍니다.

결과 iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAADKUlEQVR4Ae3QMQEAAADCoPVPbQhfiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg4B0Yv9QAAQ + mdHoAAAAASUVORK5CYII =

감사합니다.

+0

'성공하지 못함'- 잘못된 base64 문자열 또는 다른 것을 제공합니까? –

+0

잘못된 base64 문자열입니다. –

+0

데이터 : 이미지 부분 만 제거 할 수 있다고 생각하지 않습니다. 바꾸기 전에 dataURL 만 반환하면됩니다. –

답변

0

나는 대답을 얻었다.

var img = document.getElementById('image'); 

var oReq = new XMLHttpRequest(); 
oReq.open("GET", img, true); 
oReq.responseType = "arraybuffer"; 

oReq.onload = function (oEvent) { 
    var arrayBuffer = oReq.response; // Note: not oReq.responseText 
    if (arrayBuffer) { 
     var x = img.split('.'); 
     var ext = x[x.length - 1]; 
     var b64img = _arrayBufferToBase64(arrayBuffer); 
     $('<img />').attr('src', 'data:image/' + ext + ';base64,' + b64img).appendTo($('body')); 
    } 
}; 

oReq.send(null); 

function _arrayBufferToBase64(buffer) { 
    var binary = '' 
    var bytes = new Uint8Array(buffer) 
    var len = bytes.byteLength; 
    for (var i = 0; i < len; i++) { 
     binary += String.fromCharCode(bytes[i]) 
    } 
    return window.btoa(binary); 
}