vue处理大量图片url转成base64
时间: 2023-10-31 17:59:06 浏览: 116
可以使用Vue的computed属性和HTML5中的Canvas API来处理大量图片url转成base64。具体步骤如下:
1. 在Vue组件中定义一个data属性来存储要处理的图片url列表,例如:
```
data() {
return {
imageUrls: ['http://example.com/image1.jpg', 'http://example.com/image2.jpg', ...]
}
}
```
2. 创建一个computed属性,用来遍历imageUrls列表并将每个图片url转成base64格式。在computed属性中,我们可以使用Promise.all()方法来同时处理所有图片url,避免因为异步加载图片导致页面卡顿。例如:
```
computed: {
imageBase64List() {
return Promise.all(this.imageUrls.map(url => this.getBase64Image(url)))
}
},
methods: {
async getBase64Image(url) {
const img = new Image()
img.crossOrigin = 'Anonymous'
img.src = url
await new Promise(resolve => img.onload = resolve)
const canvas = document.createElement('canvas')
canvas.width = img.width
canvas.height = img.height
const ctx = canvas.getContext('2d')
ctx.drawImage(img, 0, 0)
const dataURL = canvas.toDataURL('image/png')
return dataURL
}
}
```
3. 在Vue模板中使用imageBase64List属性来显示转换后的图片列表,例如:
```
<template>
<div>
<div v-for="base64 in imageBase64List" :key="base64">
<img :src="base64">
</div>
</div>
</template>
```
这样就可以使用Vue处理大量图片url并转成base64格式了。需要注意的是,在使用Canvas API将图片转成base64格式时,图片跨域需要设置crossOrigin属性为'Anonymous',否则会抛出SecurityError异常。
阅读全文