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 相关文章推荐
js当一个变量为函数时 应该注意的一点细节小结
Dec 29 Javascript
使用jQuery.fn自定义jQuery翻页插件
Jan 20 Javascript
js打造数组转json函数
Jan 14 Javascript
JavaScript面向对象精要(上部)
Sep 12 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
Nov 20 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
Aug 06 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 Javascript
JQuery常见节点操作实例分析
May 15 jQuery
0基础学习前端开发的一些建议
Jul 14 Javascript
jQuery实现简单弹幕制作
Dec 10 jQuery
动态实现element ui的el-table某列数据不同样式的示例
Jan 22 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中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
<script defer> defer 是什么意思
2009/05/10 Javascript
Javascript 学习笔记 错误处理
2009/07/30 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
python 同时读取多个文件的例子
2019/07/16 Python
Python numpy数组转置与轴变换
2019/11/15 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
会计专业毕业生求职信分享
2014/01/03 职场文书
社会保险接收函
2014/01/12 职场文书
小学教师节活动方案
2014/01/31 职场文书
药店主任岗位责任制
2014/02/10 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
法人授权委托书样本
2014/09/19 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
乱世佳人观后感
2015/06/08 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技