Base64图片转文件流
时间: 2023-10-10 10:08:29 浏览: 92
以下是将 Base64 编码图片转换为文件流的 Python 代码示例:
```python
import base64
from io import BytesIO
from PIL import Image
# 读取 Base64 编码的图片
base64_img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..."
img_data = base64.b64decode(base64_img.split(",")[1])
# 将图片数据转为文件流
img_stream = BytesIO(img_data)
# 使用 PIL 库打开文件流并处理图片
img = Image.open(img_stream)
img.show()
```
在代码中,我们首先读取包含 Base64 编码图片的字符串 `base64_img`,然后使用 `base64.b64decode()` 方法将其解码为二进制数据。接着,通过 `BytesIO()` 方法将二进制数据转换为文件流 `img_stream`。
最后,我们使用 PIL 库打开文件流,并使用 `show()` 方法显示图片。可以根据需要,将图片保存到本地或进行其他进一步的处理。
相关问题
vue下载base64图片文件流
以下是使用Vue下载base64图片文件流的方法:
```javascript
<template>
<div>
<button @click="downloadImg">下载图片</button>
</div>
</template>
<script>
export default {
methods: {
downloadImg() {
// 假设base64图片数据已经存在于imgData变量中
let imgData = 'data:image/png;base64,iVBORw0KG...';
let fileName = 'test.png'; // 下载的文件名
// 将base64转换为Blob流
let byteString = atob(imgData.split(',')[1]);
let ab = new ArrayBuffer(byteString.length);
let ia = new Uint8Array(ab);
for (let i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
let blob = new Blob([ab], { type: 'image/png' });
// 创建下载链接并模拟点击下载
let url = URL.createObjectURL(blob);
let link = document.createElement('a');
link.href = url;
link.download = fileName;
link.click();
URL.revokeObjectURL(url);
}
}
}
</script>
```
vue上传图片base64转文件流
以下是使用Vue上传图片并将base64转换为文件流的示例代码:
```html
<template>
<div>
<input type="file" @change="handleFileChange" accept="image/*" />
<button @click="uploadImage">上传图片</button>
</div>
</template>
<script>
export default {
data() {
return {
file: null,
base64Data: null
};
},
methods: {
handleFileChange(event) {
this.file = event.target.files[0];
this.convertToBase64();
},
convertToBase64() {
const reader = new FileReader();
reader.onload = (event) => {
this.base64Data = event.target.result;
};
reader.readAsDataURL(this.file);
},
uploadImage() {
// 在这里将base64Data发送给后端进行处理
// 可以使用axios或其他HTTP库发送POST请求
// 将base64Data作为请求体的一部分发送给后端
}
}
};
</script>
```
在上述代码中,我们使用`<input type="file">`元素来选择图片文件,并通过`@change`事件监听文件选择的变化。当文件选择变化时,我们将选中的文件赋值给`file`变量,并调用`convertToBase64`方法将文件转换为base64格式的数据。
`convertToBase64`方法使用`FileReader`对象将文件读取为base64格式的数据,并将结果赋值给`base64Data`变量。
最后,我们可以在`uploadImage`方法中将`base64Data`发送给后端进行处理。你可以使用axios或其他HTTP库发送POST请求,并将`base64Data`作为请求体的一部分发送给后端。
阅读全文