Как я могу преобразовать json в буфер? - PullRequest
0 голосов
/ 05 апреля 2020

Я использую 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)

                        }
...