js 图片转base64

要将图片转换为Base64编码的字符串,可以使用JavaScript中的Canvas对象来实现。以下是一个将图片转换为Base64的示例代码:

function imageToBase64(imgSrc, callback) {

  var img = new Image();

  img.crossOrigin = 'Anonymous';


  img.onload = function() {

    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');


    // 移除Base64编码前的部分

    var base64Data = dataURL.replace(/^data:image\/(png|jpg);base64,/, '');


    // 调用回调函数,传递Base64编码的字符串

    callback(base64Data);

  };


  img.src = imgSrc;

}


// 调用imageToBase64函数,传入图片URL和回调函数

var imageUrl = 'https://example.com/image.jpg';


imageToBase64(imageUrl, function(base64Data) {

  console.log(base64Data); // 输出Base64编码的字符串

});


在上述代码中,imageToBase64函数接受两个参数:图片的URL和一个回调函数。该函数会创建一个Image对象,将imgSrc赋值给img.src属性,同时设置img.crossOrigin为'Anonymous'以解决跨域问题。当图片加载完成后,会创建一个canvas元素用于绘制图片,并通过toDataURL方法将画布内容转换为Base64编码的字符串。最后,通过回调函数将Base64编码的字符串传递出去。

你需要将imgSrc变量设置为你想要转换为Base64的图片的URL。当转换完成后,Base64编码的字符串将通过回调函数返回并输出到控制台。请注意,由于安全策略限制,如果图片不允许跨域访问,基于canvas的转换可能会失败。在这种情况下,你可以将图片上传到与你使用的JavaScript代码同源的服务器上,以避免跨域问题。


返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册