这是我第一次在这里发帖提问。我正在构建一个具有图像上传功能的流星应用程序。我找到了流星的 cloudinary 包https://github.com/Lepozepo/cloudinary并且它工作得很好。我遇到的唯一也是最大的问题是调整图像大小。默认情况下,这个包会上传从手机拍摄的原始图像,通常为 3 或 4 MB,大小约为 2000x4000,但我只希望图像为几 KB。由于这个问题,应用程序需要大量的存储和带宽。我应该怎么做才能解决这个问题?非常感谢。
我不确定是否有人需要这个,但过去两天我一直在努力解决这个问题,但找不到解决方案。最后我去了 cloudinary 仪表板,这是有史以来最简单的事情。登录您的云端。转到设置 -> 上传 -> 上传预设:编辑(在您的项目上) -> 上传操作 -> 传入转换:编辑 -> 根据需要更改传入图像:D。
我上传了一张大小为 2mb 的图像,在应用传入转换后,大小降至 30kb。
希望这对某人有帮助:)
如果您正在执行客户端上传(通过 Cloudinary 的 jQuery 集成库),您可以在上传之前执行客户端调整大小: https://github.com/cloudinary/cloudinary_js#client-side-image-resizing-before-upload
如果您正在执行服务器端上传,则可以应用“传入转换”来转换图像(调整大小),然后再将其存储到您的 Cloudinary 帐户中。 传入转换也可以在上传预设中设置:
http://cloudinary.com/blog/centralized_control_for_image_upload_image_size_format_thumbnail_ Generation_tagging_and_more质量:您可以使用质量参数指定所需的图像质量。该值应为 0 到 100 之间的数字,其中 0 表示最低质量(最高压缩),100 表示最高质量(最低压缩)。例如,设置质量:80 会将图像质量降低到 80%。
const cloudinary = require('cloudinary').v2;
//Configure Cloudinary with your credentials
cloudinary.config({
cloud_name: 'your_cloud_name',
api_key: 'your_api_key',
api_secret: 'your_api_secret'
});
// Upload the image with compression and resizing
cloudinary.uploader.upload('path_to_your_image.jpg', {
folder: 'your_folder', // Optional: Specify the folder in Cloudinary
quality: 80, // Reduce image quality to 80%
format: 'jpg', // Convert the image to JPEG format
width: 800, // Resize the image width to 800 pixels
height: 600 // Resize the image height to 600 pixels
}, function(error, result) {
if (error) {
console.error(error);
} else {
console.log(result);
}
});
我们使用cloudinary.uploader.upload()将图像上传到Cloudinary。 我们指定质量、格式、宽度和高度参数,以根据我们的要求压缩和调整图像大小。 回调函数接收错误或上传结果,您可以进行相应处理。