这篇文章主要介绍了javascript将图片的绝对路径转换为base64编码的方法,现在分享给大家,也给大家做个参考。
我们可以使用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 运行如下所示:
通过搜索明白,我们使用的是淘宝服务器上的一张图片,在本地服务器下访问,结果出现图片跨域的问题;为止,我们可以把图片放在本地服务器下即可解决上面的跨域问题;比如我现在将淘宝服务器下的图片保存在本地服务器下;如下代码即可解决:
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);}
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
关于vue如何实现动态加载图片src
关于vue2.0中datepicker使用方法
在javascript中如何实现最长公共子序列
以上就是在javascript中如何将路径转换为base64编码的详细内容。