Как изменить размер изображения на fly (express и S3)
Я пытаюсь получить изображение из url, а затем изменить размер на лету без сохранения
var request = require('request');
request
.get('s3url')
.on('response', function (response) {
console.log(response) // 200
console.log(response.headers['content-type']) // 'image/png'
})
.pipe(res)
Теперь я могу вернуть ту же картинку с помощью request
lib, но как я могу манипулировать ею, а затем вернуться в качестве ответа?
1 ответ:
Есть несколько модулей npm, которые делают изменение размера одним из примеров является
sharp
. Вы можете использовать его таким образом (пример взят из документации API).var transformer = sharp() .resize(300) .on('info', function(info) { console.log('Image height is ' + info.height); }); readableStream.pipe(transformer).pipe(res);
readableStream
будет потоком вашей исходной картины.