Отображение сжатого изображения в следующем запросе
Есть приложение которое загружает изображение и потом надо будет это загруженное изображение сжать. Для загрузки использую multer а для сжатие изображений - imagemin и его другие модули.
Проблема заключается, что у меня не получается уже после загрузки сжатое изображение отобразить. Запрос который выводит загруженное изображение: router.get('/:filename', (request, response) => { let fileName = request.params.filename
let pathToCheck = path.join(__dirname, '../public/uploads/' + fileName)
if (fs.existsSync(pathToCheck)) {
let imageDestination = `${request.protocol}://${request.headers.host}/uploads/${fileName}`;
response.render('compress', {
userImage: imageDestination
})
var bitmap = imageBase64(pathToCheck);
const encode = RLE.Encode(bitmap)
Vibrant.from(pathToCheck).getPalette()
.then(palette => {
console.log(palette)
})
}
else {
response.send('Oops.')
}
})
Тут у меня получается вывести загруженное изображение, но дальше я не понимаю как мне загруженное изображение сжать и вывести его:
router.post('/result/:filename', async (request, response) => {
const compressedImage = await imagemin(['uploads/' + request.params.filename], {
destination: 'compressed',
plugins: [
imageminMozjpeg(),
imageminJpegtran(),
imageminPngquant(),
imageminOptipng(),
imageminGiflossy(),
imageminGifsicle(),
imageminSvgo(),
imageminWebp()
]
})
response.render('result', {
compressedImage: compressedImage
})
})
И разметка:
<form>
<h1>Compressed image:</h1>
<img class="compressedImage" src="{{compressedImage}}"></img>
<button class="download" id="download">download</button>
</form>