如何使用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?