最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 22:21:38
文档

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

Javascript将图片的绝对路径转换为base64编码的方法:我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码;在这我们引用的是淘宝首页一张图片如下: 代码如下: var img = https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg; 我们如
推荐度:
导读Javascript将图片的绝对路径转换为base64编码的方法:我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码;在这我们引用的是淘宝首页一张图片如下: 代码如下: var img = https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg; 我们如

我们可以使用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);
}

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

文档

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

Javascript将图片的绝对路径转换为base64编码的方法:我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码;在这我们引用的是淘宝首页一张图片如下: 代码如下: var img = https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg; 我们如
推荐度:
标签: js javascript base64
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top