Я хочу сжать изображения в формате png и jpg и преобразовать их в формат webp. я нашел библиотеку imagemin-webp, и я хочу использовать ее, но я нашел этот пример, который берет файлы из одного каталога, сжимает их, а затем публикует их в другом каталоге:
const imagemin = require('imagemin');
const imageminWebp = require('imagemin-webp');
imagemin(['images/*.{jpg,png}'], 'build/images', {
use: [
imageminWebp({quality: 50})
]
}).then(() => {
console.log('Images optimized');
});
я хочу использовать этоТехника, когда пользователь загружает несколько изображений, поэтому multer получает изображения, а затем imagemin сжимает их и сохраняет их. Это мое изображение загрузки API с кодом Multer
let storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads/rooms');
},
filename: function (req, file, cb) {
cb(null, req.params.room_id + "_" + Date.now() + "_" + Math.floor(Math.random() * 10000) + file.originalname.substr(-7));
}
});
let upload = multer({ storage: storage })
//add pictures to a room
venuesRoutes.route('/:id/room/:room_id/add_pictures').post(upload.array('pics', 20), function (req, res) {
Venue.findOne({ _id: req.params.id, user: req.user._id }).populate('city').populate('rooms.availability').exec(function (err, venue) {
if (err) {
res.status(404).send("venue is not found");
}
else {
let room = venue.rooms.id(req.params.room_id)
req.files.map((pic) => {
room.pics.push({ path: pic.path })
})
venue.save(function (err) {
if (!err) res.status(200).send({ msg: "pictures updated", venue: venue });
});
}
});
});