如何使用JavaScript将图像转换为base64字符串

我需要将我的图像转换为base64字符串,以便我可以将图像发送到服务器。 有没有任何js文件...? 否则如何转换它


您可以使用HTML5 <canvas>

创建一个画布,将图像加载到它中,然后使用toDataURL()获取base64表示(实际上,它是一个data: URL,但它包含base64编码的图像)。


有多种方法可以选择:

1.方法:FileReader

通过XMLHttpRequest将图像加载为blob,并使用FileReader API将其转换为dataURL:

function toDataURL(url, callback) {
  var xhr = new XMLHttpRequest();
  xhr.onload = function() {
    var reader = new FileReader();
    reader.onloadend = function() {
      callback(reader.result);
    }
    reader.readAsDataURL(xhr.response);
  };
  xhr.open('GET', url);
  xhr.responseType = 'blob';
  xhr.send();
}

toDataURL('https://www.gravatar.com/avatar/d50c83cc0c6523b4d3f6085295c953e0', function(dataUrl) {
  console.log('RESULT:', dataUrl)
})

这段代码可以将您的字符串,图像甚至视频文件转换为base64字符串数据。 尝试一次...

<input id="inputFileToLoad" type="file" onchange="encodeImageFileAsURL();" />
<div id="imgTest"></div>
<script type='text/javascript'>
  function encodeImageFileAsURL() {

    var filesSelected = document.getElementById("inputFileToLoad").files;
    if (filesSelected.length > 0) {
      var fileToLoad = filesSelected[0];

      var fileReader = new FileReader();

      fileReader.onload = function(fileLoadedEvent) {
        var srcData = fileLoadedEvent.target.result; // <--- data: base64

        var newImage = document.createElement('img');
        newImage.src = srcData;

        document.getElementById("imgTest").innerHTML = newImage.outerHTML;
        alert("Converted Base64 version is " + document.getElementById("imgTest").innerHTML);
        console.log("Converted Base64 version is " + document.getElementById("imgTest").innerHTML);
      }
      fileReader.readAsDataURL(fileToLoad);
    }
  }
</script>
链接地址: http://www.djcxy.com/p/22139.html

上一篇: How to convert image into base64 string using javascript

下一篇: Is embedding background image data into CSS as Base64 good or bad practice?