笔记 前端二进制
前端二进制
https://mp.weixin.qq.com/s/DoipkAca00MuXon8wRYPgQ
1、本地图片 File 对象转换为 Data URL
<input type="file" accept="image/*" onchange="loadFile(event)" /> <img id="image" /> <script> function loadFile(event) { const reader = new FileReader(); reader.onload = function () { const image = document.querySelector("#image"); image.src = reader.result; }; reader.readAsDataURL(event.target.files[0]); } </script>
读取图片
<img id="image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAAAAAAD">
2、Base64
btoa Binary-to-ASCII
atob ASCII-to-Binary
console.log(btoa('BC')); // QkM= console.log(atob('QkM=')); // BC
3、fetch API 从网络上获取图片
<img id="image" /> <script> const image = document.querySelector("#image"); fetch("https://avatars3.githubusercontent.com/u/4220799") .then((response) => response.blob()) .then((blob) => { const objectUrl = URL.createObjectURL(blob); image.src = objectUrl; }); </script>
读取图片
<img id="image" src="blob:http://127.0.0.1:5500/83dcb9c8-ffd3-4b5d-98a5-e3f6ff890bf2">
Blob(Binary Large Object)表示二进制类型的大对象
const blob = new Blob(['hello'])