Javascript将图片的绝对路径转换为base64编码的方法

 更新时间:2018年01月11日 15:56:57   作者:龙恩0707  
这篇文章主要介绍了Javascript将图片的绝对路径转换为base64编码的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码;在这我们引用的是淘宝首页一张图片如下:

复制代码 代码如下:

我们如下编写代码:

function getBase64Image(img) {
    var canvas = document.createElement("canvas");
    canvas.width = img.width;
    canvas.height = img.height;
    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0, img.width, img.height);
    var ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
    var dataURL = canvas.toDataURL("image/"+ext);
    return dataURL;
}
var img = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg";
var image = new Image();
image.src = img;
image.onload = function(){
  var base64 = getBase64Image(image);
  console.log(base64);
}

chrome 运行如下所示:

通过搜索明白,我们使用的是淘宝服务器上的一张图片,在本地服务器下访问,结果出现图片跨域的问题;为止,我们可以把图片放在本地服务器下即可解决上面的跨域问题;比如我现在将淘宝服务器下的图片保存在本地服务器下;如下代码即可解决:

var img = "http://127.0.0.1/base64/1.jpg";
function getBase64Image(img) {
  var canvas = document.createElement("canvas");
  canvas.width = img.width;
  canvas.height = img.height;
  var ctx = canvas.getContext("2d");
  ctx.drawImage(img, 0, 0, img.width, img.height);
  var ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
      var dataURL = canvas.toDataURL("image/"+ext);
  return dataURL;
}
var image = new Image();
image.src = img;
image.onload = function(){
  var base64 = getBase64Image(image);
  console.log(base64);
}

但是有时候我们想引用其他服务器下的图片该如何解决呢?我们可以使用下面这一句代码在chrome和firefox下生效,在目前safari6以下貌似不支持;如下代码:

image.crossOrigin = '';

所有代码如下:

var img = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg";
//var img = "http://127.0.0.1/base64/1.jpg";
function getBase64Image(img) {
  var canvas = document.createElement("canvas");
  canvas.width = img.width;
  canvas.height = img.height;

  var ctx = canvas.getContext("2d");
  ctx.drawImage(img, 0, 0, img.width, img.height);
  var ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
  var dataURL = canvas.toDataURL("image/"+ext);
  return dataURL;
}
var image = new Image();
image.crossOrigin = '';
image.src = img;
image.onload = function(){
  var base64 = getBase64Image(image);
  console.log(base64);
}

如上代码在chrome和firefox下,经测试生效,在safari目前不支持;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解如何在Canvas上实现坐标定位

    详解如何在Canvas上实现坐标定位

    这篇文章我们将来详细的给大家讲解一下如何在 canvas 上实现坐标的定位,文中有详细的代码示例供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2023-08-08
  • 老生常谈js中0到底是 true 还是 false

    老生常谈js中0到底是 true 还是 false

    下面小编就为大家带来一篇老生常谈js中0到底是 true 还是 false。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 小程序实现短信登录倒计时

    小程序实现短信登录倒计时

    这篇文章主要为大家详细介绍了小程序实现短信登录倒计时,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • js实现小星星游戏

    js实现小星星游戏

    这篇文章主要为大家详细介绍了js实现小星星游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • JS对img标签进行优化使用onerror显示默认图像

    JS对img标签进行优化使用onerror显示默认图像

    这篇文章主要介绍了JS对img标签进行优化使用onerror显示默认图像,需要的朋友可以参考下
    2014-04-04
  • 使用JavaScript为Kindeditor自定义按钮增加Audio标签

    使用JavaScript为Kindeditor自定义按钮增加Audio标签

    这篇文章主要介绍了使用JavaScript为Kindeditor自定义按钮增加Audio标签的方法,KindEditor是一套开源的HTML可视化编辑器,需要的朋友可以参考下
    2016-03-03
  • js 将canvas生成图片保存,或直接保存一张图片的实现方法

    js 将canvas生成图片保存,或直接保存一张图片的实现方法

    下面小编就为大家分享一篇js 将canvas生成图片保存,或直接保存一张图片的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • javascript创建元素和删除元素实例小结

    javascript创建元素和删除元素实例小结

    这篇文章主要介绍了javascript创建元素和删除元素,结合实例形式总结分析了javascript针对页面元素的动态创建、删除及子元素操作相关实现技巧,需要的朋友可以参考下
    2019-06-06
  • ES6的Fetch异步请求的实现方法

    ES6的Fetch异步请求的实现方法

    这篇文章主要介绍了ES6的Fetch异步请求的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 原生JS获取元素的位置与尺寸实现方法

    原生JS获取元素的位置与尺寸实现方法

    下面小编就为大家带来一篇原生JS获取元素的位置与尺寸实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论