二进制流转base64加快速度

Posted mdge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制流转base64加快速度相关的知识,希望对你有一定的参考价值。

updateImgList() {
const reg = /.(w+)$/
const __arrPromise__ = []
const self = this
for (let i = 0; i < self.totalPicture[self.pageNum].length; i++) {
const fn = new Promise((resolve) => {
self.$api.getArrayBuffer(self.totalPicture[self.pageNum][i].id).then((response) => {
let obj = null
// 是否TIF和TIFF格式的图片
if (self.totalPicture[self.pageNum][i].filePath.match(reg)[1] === ‘tif‘ || self.totalPicture[self.pageNum][i].filePath.match(reg)[1] === ‘tiff‘) {
// eslint-disable-next-line no-undef
const tiff = new Tiff({ buffer: response })
obj = {
id: self.totalPicture[self.pageNum][i].id,
type: ‘tif‘,
url: tiff.toDataURL()
}
} else {
obj = {
type: ‘mormal‘,
id: self.totalPicture[self.pageNum][i].id,
url: (‘data:data/png;base64,‘ + btoa(
new Uint8Array(response).reduce((data, byte) => data + String.fromCharCode(byte), ‘‘)
))
// ‘/label/job-picture/show-image?id=‘ + self.totalPicture[self.pageNum][i].id
}
}
resolve(obj)
}).catch(error => {})
})
__arrPromise__.push(fn)
}
Promise.all(__arrPromise__).then((res) => {
self.imgList = self.imgList.concat(res)
let activeIndex = 0
if (self.imgSwiper) {
activeIndex = self.imgSwiper.activeIndex
}
if (self.pageNum == 0) {
self.$nextTick(() => {
self.initSwiper()
})
}
self.updateTopImg(self.imgList[activeIndex].id)
})
},

以上是关于二进制流转base64加快速度的主要内容,如果未能解决你的问题,请参考以下文章

java对文件的二进制流base64编码解码

请教二进制流能否转换成base64

php Base64编码文件二进制流主要使用

JS 上传图片转换成二进制流base64

c# 图片转二进制流

SSE图像算法优化系列三十一:Base64编码和解码算法的指令集优化(C#自带函数的3到4倍速度)。