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与其它库冲突的解决方法
Jun 25 Javascript
jquery实现checkbox 全选/全不选的通用写法
Feb 22 Javascript
JavaScript中的console.profile()函数详细介绍
Dec 29 Javascript
基于jQuery的Web上传插件Uploadify使用示例
May 19 Javascript
Vue.js第三天学习笔记(计算属性computed)
Dec 01 Javascript
JSONP基础知识详解
Mar 19 Javascript
JS实现加载和读取XML文件的方法详解
Apr 24 Javascript
微信小程序 本地数据读取实例
Apr 27 Javascript
JQuery通过后台获取数据遍历到前台的方法
Aug 13 jQuery
vue+springboot图片上传和显示的示例代码
Feb 14 Javascript
小程序中手机号识别的示例
Dec 14 Javascript
关于JS中的作用域中的问题思考分享
Apr 06 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修改时间格式的代码
2011/05/29 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
jsonp原理及使用
2013/10/28 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
2016/08/16 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
Python3读取zip文件信息的方法
2015/05/22 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
python类的实例化问题解决
2019/08/31 Python
python读文件的步骤
2019/10/08 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
医药营销专业个人自荐信
2013/09/29 职场文书
社区八一活动方案
2014/02/03 职场文书
水电工岗位职责
2014/02/12 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
说明书怎么写
2014/05/06 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
技能培训通讯稿
2015/07/18 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python