javascript - 如何让用户上传的图片转换为Base64

标签 javascript jquery base64

我已经制作了一个简单的日志系统,我从文本字符串中获取 Base64 代码:

var myString = 'Hello everyone, my name is Dennis';
var b64 = btoa(myString);
var unicode = atob(b64);
console.log(b64);
console.log(unicode);

如我所说,输出是一个 Base64 代码,但我想做的是将上传的图像转换为 Base64。这是我到目前为止得到的,我从中得到的输出是 base64 代码中的整个网页。我希望有人能帮助我。

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



//use

var captcha = document.getElementById('logo').src;
toDataUrl(captcha, function(base64Img) {
    log(captcha);
});

提前致谢!

最佳答案

如果重复对您没有帮助,我为您提供了一个工作示例: (如果您的图像未在请求的同一域中使用,请注意 CORS)

function toDataUrl(src, callback) {
  var img = new Image();
  img.crossOrigin = 'Anonymous';
  img.onload = function() {
    var canvas = document.createElement('CANVAS');
    var ctx = canvas.getContext('2d');
    var dataURL;
    canvas.height = this.height;
    canvas.width = this.width;
    ctx.drawImage(this, 0, 0);
    dataURL = canvas.toDataURL();
    callback(dataURL);
  };
  img.src = src;

}

toDataUrl("http://i.imgur.com/rx3kylA.png", function(base64Img) {
  console.log(base64Img);
});

关于javascript - 如何让用户上传的图片转换为Base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41564263/

相关文章:

javascript - 如何使用 javascript 将 textarea 转换为显示其他内容(例如 base64 解密)?

javascript - Jquery 搜索并替换表中的文本

javascript - Apps 脚本 - 自动从 Google Drive 中删除超过 3 天的文件 - 获取文件列表

javascript - Jquery UI datepicker setDate 不适用于 formatDate 的动态更改

javascript - 使用 Bootstrap 折叠类不适用于多个 div 标签

c# - 在c#.net中将 'String'转换为MD5 'String'的Base64编码

java - 无法使 Base64.decodeBase64 工作(Commons 编解码器)

javascript - d3如何做并发动画?

javascript - 为什么我看到 javascript 数组是用 string.split() 创建的?

jquery - 防止 UI 由于 ajax 调用而卡住