Reputation: 852
i am using sharp.js for image manipulation in node.js
my code
sharp(path)
.toFormat('jpeg')
.toBuffer((err, data, info) => {
fs.writeFile(temp, buffer, { flag: 'w' }, function() {
response.sendFile(temp);
});
});
here temp in fs means "the path" var temp= imageDir + request.params.id;
( http://localhost:2000/images/we.png )
upload image as png format or any other format
convert that image to JPEG
using .toFormat('jpeg')
and send to
buffer
Upvotes: 4
Views: 16931
Reputation: 1489
You can do this
sharp(req.files[0].path).resize(400, 200).toFile('uploads/' + 'thumbnail-' + req.files[0].originalname, (err, sharp) => {
if (err) {
console.error(err);
}
else {
console.log(sharp);
}
});
Upvotes: 0
Reputation: 15402
Your code doesn't have 'buffer'. You should be writing data.
.toBuffer((err, data, info) => {
fs.writeFile(temp, data, { flag: 'w' }, function() {
response.sendFile(temp);
});
});
but you'd be better off using toFile instead of toBuffer:
sharp('originalFile.jpg').
resize(330,null).
flatten().
toFile('newFile.jpg', function(err){
if(err){
response.sendStatus(500);
return;
}
response.sendFile('newFile.jpg');
});
Upvotes: 4