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


Posted in Javascript onJanuary 11, 2018

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

var img = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.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 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 运行如下所示:

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

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

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目前不支持;

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

Javascript 相关文章推荐
jQuery技巧大放送 学习jquery的朋友可以看下
Oct 14 Javascript
javascript document.execCommand() 常用解析
Dec 14 Javascript
模拟多级复选框效果的jquery代码
Aug 13 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
Sep 24 Javascript
JS函数this的用法实例分析
Feb 05 Javascript
浅谈javascript中的instanceof和typeof
Feb 27 Javascript
jQuery实现新消息闪烁标题提示的方法
Mar 11 Javascript
微信小程序  自定义创建详细介绍
Oct 27 Javascript
javascript数据结构之串的概念与用法分析
Apr 12 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
Oct 22 Javascript
js 计算图片内点个数的示例代码
Apr 04 Javascript
如何去除vue项目中的#及其ie9兼容性
Jan 11 #Javascript
全新打包工具parcel零配置vue开发脚手架
Jan 11 #Javascript
详解VUE2.X过滤器的使用方法
Jan 11 #Javascript
Vuex提升学习篇
Jan 11 #Javascript
浅谈Node.js爬虫之网页请求模块
Jan 11 #Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 #Javascript
angular2中Http请求原理与用法详解
Jan 11 #Javascript
You might like
PHP 模拟$_PUT实现代码
2010/03/15 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
挑战杯创业计划书的写作指南
2014/01/07 职场文书
大学班长的职责
2014/01/27 职场文书
电子信息专业自荐书
2014/02/04 职场文书
元旦晚会策划方案
2014/02/18 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
债务纠纷代理词
2015/05/25 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python