gpt4 book ai didi

javascript - 使用 Node.js 和谷歌云存储压缩图像

转载 作者:行者123 更新时间:2023-11-30 09:33:49 25 4
gpt4 key购买 nike

我想在用户将图片上传到我的网站后调整大小和压缩图片。似乎有很多选项可以使用 Node 调整图像大小(例如 https://github.com/lovell/sharp ),但我也想压缩图像以节省磁盘空间并允许更快的服务时间。是否有图书馆或其他东西使这成为可能?

这是我目前(正在运行的)路线的简化版本:

var router = require('express').Router();
var bucket = require('../modules/google-storage-bucket');
var Multer = require('multer');
var multer = Multer({
storage: Multer.memoryStorage(),
limits: {
fileSize: 5 * 1024 * 1024 // no larger than 5mb
}
});

// Process the file upload and upload to Google Cloud Storage.
router.post('/', multer.single('file'), (req, res) => {

// rejecting if no file is uploaded
if (!req.file) {
res.status(400).send('No file uploaded.');
return;
}

// Create a new blob in the bucket and upload the file data.
var blob = bucket.file('fileName');
var blobStream = blob.createWriteStream();

blobStream.on('error', (err) => {
console.log('error', err);
res.send(500);
});

blobStream.on('finish', () => {
console.log('everything worked!')
});

blobStream.end(req.file.buffer);
});

module.exports = router;

最佳答案

Sharp 具有用于调整图像压缩的 API。例如:

https://sharp.pixelplumbing.com/api-output#jpeg

列出 JPEG 写入的选项。您可以调整 JPEG 压缩器上的一系列旋钮,以针对您想要的性能/压缩/质量权衡进行调整。

在最好的情况下,您最多可以将压缩率提高约 30%,老实说,这对我来说有点微不足道。它不太可能对您的页面大小或加载时间产生重大影响。

就存储节省而言,最好的解决方案是根本不存储图像 --- sharp 足够快,您可以简单地按需生成所有图像(大多数动态图像大小调整 Web 代理使用 sharp 作为引擎) .这是一个真正可以为您省钱并使您的页面看起来更好的更改。

关于javascript - 使用 Node.js 和谷歌云存储压缩图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44749912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com