Я использую Sharp, чтобы изменить размер изображения до нескольких размеров и отправить измененные буферы изображения в ответ . Это работало нормально, пока я отправлял только один буфер, одно изображение. Но когда я использую несколько изображений, он возвращает объект JSON вместо буфера. Как мне преобразовать эти JSON данные в буфер из внешнего интерфейса?
Я пробовал Buffer.from () & new Buffer ( ) но у меня как-то не получилось.
Запросить часть:
router.post('/images', upload.array('images',5), async(req,res)=>{
var data = []
for(let file of req.files) {
var imageBuffer = await sharp(file.buffer).png().resize({
width:250,
fit: sharp.fit.cover,
position: sharp.strategy.entropy
}).toBuffer()
var thumbnailBuffer = await sharp(file.buffer).png().resize({
width:150,
height:150,
fit: sharp.fit.cover,
position: sharp.strategy.entropy
}).toBuffer()
await data.push({imageBuffer,thumbnailBuffer})
}
res.send({images:data})
}
Часть браузера:
for(let image of data.images){
console.log(image.thumbnailBuffer);
var imgdata =new Buffer(image.thumbnailBuffer)
var img = document.createElement("IMG")
img.setAttribute('alt','images')
img.setAttribute('class','img-fluid')
img.setAttribute('ng-src',`data:image/png;base64,${imgdata}`)
thumbnails.appendChild(img)
}