Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自绝对映像路径的Base64数据_Javascript - Fatal编程技术网

Javascript 来自绝对映像路径的Base64数据

Javascript 来自绝对映像路径的Base64数据,javascript,Javascript,我试图从图像url获取base64数据,但它总是返回“数据:” 代码如下: function getBase64Image(imgurl) { var canvas = document.createElement("canvas"); var img = new Image(); img.src = imgurl; canvas.width = img.width; canvas.height = img.height; var ctx = canvas.getCont

我试图从图像url获取base64数据,但它总是返回“数据:”

代码如下:

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

使用
img.onload
在图像加载后执行代码。使用回调函数报告dataURL

function getBase64Image(imgurl, callback) {
  var canvas = document.createElement("canvas");
  var ctx = canvas.getContext("2d");
  var img = new Image();
  img.onload = function() {
      canvas.width = img.width;
      canvas.height = img.height;
      ctx.drawImage(img, 0, 0);
      var dataURL = canvas.toDataURL("image/png");
      dataURL = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
      if (typeof callback === 'function') {
        callback(dataUrl);
      }
  };
  img.src = imgurl;
}

使用
img.onload
在图像加载后执行代码。使用回调函数报告dataURL

function getBase64Image(imgurl, callback) {
  var canvas = document.createElement("canvas");
  var ctx = canvas.getContext("2d");
  var img = new Image();
  img.onload = function() {
      canvas.width = img.width;
      canvas.height = img.height;
      ctx.drawImage(img, 0, 0);
      var dataURL = canvas.toDataURL("image/png");
      dataURL = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
      if (typeof callback === 'function') {
        callback(dataUrl);
      }
  };
  img.src = imgurl;
}

等待图像加载!等待图像加载!在加载图像之前,您无法获取
img.width
img.src
应放在
onload
callback之后。Refer-SecurityError:操作不安全。@MohitBumb,您的映像必须托管在同一个域下!它来自Amazon S3,在图像加载之前,您无法获得
img.width
img.src
应放在
onload
callback之后。Refer-SecurityError:操作不安全。@MohitBumb,您的映像必须托管在同一个域下!它来自亚马逊S3