js把图片转为base64有哪些方法

这次给大家带来js把图片转为base64有哪些方法,js把图片转为base64的注意事项有哪些,下面就是实战案例,一起来看一下。

方式一:Blob和FileReader 对象

实现原理:

使用xhr请求图片,并设置返回的文件类型为Blob对象[xhr.responseType = “blob”]

使用FileReader 对象接收blob

        js 图片转base64方式  

getBase64("https://z649319834.github.io/Learn_Example/video_track/webvtt.jpg") function getBase64(imgUrl) { window.URL = window.URL || window.webkitURL; var xhr = new XMLHttpRequest(); xhr.open("get", imgUrl, true); // 至关重要 xhr.responseType = "blob"; xhr.onload = function () { if (this.status == 200) { //得到一个blob对象 var blob = this.response; console.log("blob", blob) // 至关重要 let oFileReader = new FileReader(); oFileReader.onloadend = function (e) { let base64 = e.target.result; console.log("方式一》》》》》》》》》", base64) }; oFileReader.readAsDataURL(blob); //====为了在页面显示图片,可以删除==== var img = document.createElement("img"); img.onload = function (e) { window.URL.revokeObjectURL(img.src); // 清除释放 }; let src = window.URL.createObjectURL(blob); img.src = src document.getElementById("container1").appendChild(img); //====为了在页面显示图片,可以删除==== } } xhr.send(); }

登录后复制

方式二:canvas.toDataURL()方法

实现原理:

使用canvas.toDataURL()方法

需要解决图片跨域问题 image.crossOrigin = ”;

使用了Jquery库的$.Deferred()方法

        js 图片转base64方式

let imgSrc = "https://z649319834.github.io/Learn_Example/video_track/webvtt.jpg"; //width、height调用时传入具体像素值,控制大小 ,不传则默认图像大小 function getBase64Image(img, width, height) { var canvas = document.createElement("canvas"); canvas.width = width ? width : img.width; canvas.height = height ? height : img.height; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0, canvas.width, canvas.height); var dataURL = canvas.toDataURL(); return dataURL; } function getCanvasBase64(img) { var image = new Image(); //至关重要 image.crossOrigin = ''; image.src = img; //至关重要 var deferred = $.Deferred(); if (img) { image.onload = function () { deferred.resolve(getBase64Image(image));//将base64传给done上传处理 document.getElementById("container2").appendChild(image); } return deferred.promise();//问题要让onload完成后再return sessionStorage['imgTest'] } } getCanvasBase64(imgSrc) .then(function (base64) { console.log("方式二》》》》》》》》》",base64); }, function (err) { console.log(err); });

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Vue+beforeEnter使用钩子函数

vue实现选项卡以及切换功能方法详解

以上就是js把图片转为base64有哪些方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2767290.html

(0)
上一篇 2025年3月8日 11:33:44
下一篇 2025年3月8日 04:24:51

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS变量声明var,let.const使用详解

    这次给大家带来JS变量声明var,let.const使用详解,JS变量声明var,let.const的注意事项有哪些,下面就是实战案例,一起来看一下。 var声明变量的作用域限制在其声明位置的上下文中 var x = 0; // x是全局变…

    编程技术 2025年3月8日
    200
  • Node.js应用设置沙箱环境使用方法

    这次给大家带来Node.js应用设置沙箱环境使用方法,Node.js应用设置沙箱环境使用的注意事项有哪些,下面就是实战案例,一起来看一下。 有哪些动态执行脚本的场景? 在一些应用中,我们希望给用户提供插入自定义逻辑的能力,比如 Micros…

    2025年3月8日
    200
  • js与typescript中class使用详解

    这次给大家带来js与typescript中class使用详解,js与typescript中class使用的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 对于一个前端开发者来说,很少用到 class ,因为在 注意事项 中更多的是 …

    编程技术 2025年3月8日
    200
  • JS进行前后端同构步骤详解

    这次给大家带来JS进行前后端同构步骤详解,JS进行前后端同构的注意事项有哪些,下面就是实战案例,一起来看一下。 什么是前后端同构 明确三个概念:「后端渲染」指传统的 ASP、Java 或 PHP 的渲染机制;「前端渲染」指使用 JS 来渲染…

    编程技术 2025年3月8日
    200
  • nodejs读取去重excel步骤详解

    这次给大家带来nodejs读取去重excel步骤详解,nodejs读取去重excel的注意事项有哪些,下面就是实战案例,一起来看一下。 如何使用,直接上代码 /** * 安装node-xlsx插件 */var path = require(…

    编程技术 2025年3月8日
    200
  • Vue.js中router如何传递参数

    这次给大家带来Vue.js中router如何传递参数,Vue.js中router传递参数的注意事项有哪些,下面就是实战案例,一起来看一下。 Vue-router参数传递 为什么要在router中传递参数 设想一个场景,当前在主页中,你需要点…

    2025年3月8日
    200
  • 源生js实现哈夫曼编码步骤详解

    这次给大家带来源生js实现哈夫曼编码步骤详解,源生js实现哈夫曼编码的注意事项有哪些,下面就是实战案例,一起来看一下。 原始版 function cal(str) { if (typeof str !== ‘string’ || str.l…

    编程技术 2025年3月8日
    200
  • Angularjs中自定义指令使用技巧总结

    这次给大家带来Angularjs中自定义指令使用技巧总结,Angularjs中自定义指令使用的注意事项有哪些,下面就是实战案例,一起来看一下。 一:自定义指令常用模板 下面是大致的说明,不是全面的,后面来具体说明一些没有提及的细节和重要的相…

    编程技术 2025年3月8日
    200
  • jQuery插件highslide.js控制图片案例详解

    这次给大家带来jQuery插件highslide.js控制图片案例详解,jQuery插件highslide.js控制图片的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 今天用用了一款图片展示插件highslide.js,感觉用起来…

    2025年3月8日 编程技术
    200
  • nodeJS模块使用步骤详解

    这次给大家带来nodeJS模块使用步骤详解,nodeJS模块使用详解的注意事项有哪些,下面就是实战案例,一起来看一下。 1.定义Student模块,Teacher模块 function add(student){ console.log(‘…

    2025年3月8日
    200

发表回复

登录后才能评论