Ajouter une fonction de prévisualisation d'image pour redimensionner et renvoyer une image JPEG
This commit is contained in:
@@ -62,6 +62,26 @@ router.get('/images/:measurementId', (req, res) => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
async function previewImage(imagePath, factor, res) {
|
||||||
|
try {
|
||||||
|
// Obtenir les dimensions originales de l'image
|
||||||
|
const metadata = await sharp(imagePath).metadata();
|
||||||
|
const width = Math.floor(metadata.width / factor);
|
||||||
|
const height = Math.floor(metadata.height / factor);
|
||||||
|
|
||||||
|
// Redimensionner l'image à la moitié de ses dimensions d'origine
|
||||||
|
const resizedImage = await sharp(imagePath)
|
||||||
|
.resize(width, height)
|
||||||
|
.jpeg({ quality: 65 })
|
||||||
|
.toBuffer();
|
||||||
|
|
||||||
|
res.set('Content-Type', 'image/jpeg');
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Error resizing image:', err);
|
||||||
|
res.status(500).json({ error: 'Internal Server Error' });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
router.get('/preview/:projectId/:orderId', async (req, res) => {
|
router.get('/preview/:projectId/:orderId', async (req, res) => {
|
||||||
const projectId = req.params.projectId;
|
const projectId = req.params.projectId;
|
||||||
const orderId = req.params.orderId;
|
const orderId = req.params.orderId;
|
||||||
@@ -81,19 +101,8 @@ router.get('/preview/:projectId/:orderId', async (req, res) => {
|
|||||||
console.error('Image not found:', err);
|
console.error('Image not found:', err);
|
||||||
return res.status(404).json({ error: 'Image not found' });
|
return res.status(404).json({ error: 'Image not found' });
|
||||||
}
|
}
|
||||||
|
const factor = 7;
|
||||||
// Obtenir les dimensions originales de l'image
|
const resizedImage = await previewImage(imagePath, factor, res);
|
||||||
const metadata = await sharp(imagePath).metadata();
|
|
||||||
const width = Math.floor(metadata.width / 7);
|
|
||||||
const height = Math.floor(metadata.height / 7);
|
|
||||||
|
|
||||||
// Redimensionner l'image à la moitié de ses dimensions d'origine
|
|
||||||
const resizedImage = await sharp(imagePath)
|
|
||||||
.resize(width, height)
|
|
||||||
.jpeg({ quality: 65 })
|
|
||||||
.toBuffer();
|
|
||||||
|
|
||||||
res.set('Content-Type', 'image/jpeg');
|
|
||||||
res.send(resizedImage);
|
res.send(resizedImage);
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
Reference in New Issue
Block a user