怎么把img标签加载的同步转成base64
时间: 2024-09-29 14:07:45 浏览: 31
将图片转换为Base64编码通常是在前端JavaScript中操作,以便于在线上环境不需要额外文件的情况下直接展示图像数据。以下是将<img>标签中的图片转换为Base64的基本步骤:
1. 获取<img>标签中的src属性值,这通常是图片的实际URL。
```javascript
var imgElement = document.getElementById('your-image-id');
var src = imgElement.src;
```
2. 使用XMLHttpRequest或Fetch API从服务器获取图片内容,因为直接通过`src`访问可能不是同步的。
```javascript
fetch(src)
.then(response => response.blob())
.then(blob => {
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function() {
var base64Image = reader.result;
// 然后你可以使用base64Image变量存储或显示图片
};
});
```
或者如果你需要同步操作,可以使用`FileReader`读取本地文件:
```javascript
var image = document.createElement('img');
image.src = src;
image.crossOrigin = 'anonymous'; // 如果图片来自跨域源,需要设置这个
image.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = this.naturalWidth;
canvas.height = this.naturalHeight;
var ctx = canvas.getContext('2d');
ctx.drawImage(this, 0, 0);
var dataUrl = canvas.toDataURL();
// base64Image 可以在这里找到
};
```
阅读全文