js通过图片url获取图片base64编码

news/2024/11/16 13:53:08/

方法1:直接返回图片编码

  • 参数url:图片的路径 ;
  • 参数imgType:图片类型默认image/png;
  • 方法返回值:图片base64编码
function getBase64ImageUrl(url, imgType) {if(!imgType){imgType="image/png";}var img=new Image(); img.src= url;img.crossOrigin="anonymous";var xhr = new XMLHttpRequest();//通过下面两次同步请求获取同一个图片,如果请求成功来猜测上面的图片已经异步加载完成for(var i=0;i<2;i++){xhr.open('GET', url, false);xhr.send(null);}var canvas = document.createElement("canvas");var ctx = canvas.getContext("2d");  ctx.drawImage(img, 0, 0);var dataURL = canvas.toDataURL(imgType);return dataURL;
}

方法2:回调方法获取

  • 参数url:图片的路径 ;
  • 参数callBack:回调函数;回调函数的参数只有一个为:图片base64编码;
  • 参数imgType:图片类型默认image/png;
  • 方法返回值:无返回值;
function getBase64ImageUrl(url, callBack, imgType) {if(!imgType){imgType="image/png";}var img=new Image(); img.src= url;img.crossOrigin="anonymous";img.onload=function(){var canvas = document.createElement("canvas");var ctx = canvas.getContext("2d");  ctx.drawImage(img, 0, 0);var dataURL = canvas.toDataURL(imgType);callBack(dataURL);}
}

方法3:回调方法获取

  • 参数url:图片的路径 ;
  • 参数callBack:回调函数;回调函数的参数只有一个为:图片base64编码;
  • 参数imgType:图片类型默认image/png;
  • 方法返回值:无返回值;
function getBase64ImageUrl(url,callBack,imgType){if(!imgType){imgType="image/png";}var xhr = new XMLHttpRequest();xhr.responseType="arraybuffer";xhr.open('GET', url, true);xhr.onload=function(){var result=xhr.response;var file = new File([result], "foo."+imgType.match(/\/([A-Za-z]+)/)[1], {type: imgType,});var reader = new FileReader();reader.onload = function(evt) {callBack(evt.target.result);};reader.readAsDataURL(file)}xhr.send(null);
}

注意:以上两种方法获取的图片base64编码并不是纯净的,实际上是"data:image/png;base64,"+图片base64编码;其中image/png;也可能是其他图片类型,如有需要请自行截掉前面部分"data:image/png;base64,";

个人建议使用方法2和方法3获取;


http://www.ppmy.cn/news/788622.html

相关文章

vue 组件中图片地址,图片获取

前提&#xff1a;在组件中使用引用图片&#xff0c;用于<img src> 或者 背景图片background; 当我们利用vue-cli 搭建好项目的框架&#xff0c;开始高高兴兴开发组件的时候&#xff0c;有的时候想加一张图片&#xff0c;或者 在样式中加个背景&#xff0c;会发现&…

vue从数据库获取图片地址,为什么图片地址为变量时找不到图片?

vue展示以变量地址的文件 vue新手 刚开始学习vue的同学&#xff0c;可能会遇到一个问题&#xff0c;为什么当图片的地址为一个变量的时候&#xff0c;图片就找不到了呢&#xff1f; 接下来我就讲述一下我的解决方法&#xff0c;及思路。 首先&#xff0c;我们打开浏览器&am…

Android根据图片路径获取图片名字

public static String getPicNameFromPath(String picturePath){String temp[] picturePath.replaceAll("\\\\","/").split("/");String fileName "";if(temp.length > 1){fileName temp[temp.length - 1];}return fileName;}

oss 私有云访问 获取临时图片地址

oss私有bucket 访问&#xff0c;当然公有bucket可以直接访问&#xff0c;私有可以获取临时访问地址 先配置一些参数 记得maven引入oss SDK <!--Add oss--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artif…

根据图片的url获取图片的宽高

1. 代码实现 let image new Image() image.src this.imgUrl // imgUrl&#xff1a;图片的地址 console.log(image.width)2. Image() 1&#xff09;描述 Image() 函数将会创建一个新的 HTMLImageElement 实例。 它的功能等价于 document.createElement(img) 2&#xff09…

通过图片url 获取图片file对象

/*** 通过图片url 获取图片file对象* param url* param fileName 文件名称(一定要带后缀)* param callback 回调函数* returns {*}*/ function getImageFileFromUrl(url, fileName,callback) {var blob null;var xhr new XMLHttpRequest(); xhr.open("GET", url);x…

js获取html中图片路径,用js快速的获取html页面中图片的地址

这次给大家带来用js快速的获取html页面中图片的地址&#xff0c;用js快速获取html页面中图片的地址的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。 这篇文章主要介绍了js获取html代码中图片地址的实现代码,需要的朋友可以参考下 第一种方法&#xff…

js获取图片宽高等数据

一、根据图片链接url 来获取图片宽高 getImageSize(url) {return new Promise((resolve) > {var img document.createElement("img");img.src url;img.onload () > {// 为什么要写 onload 是因为要等他加载完之后才能获取到图片宽高resolve({width:img.na…