Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 压缩&;调整用户上传图像的大小_Javascript_Angularjs_Node.js_Image_Amazon S3 - Fatal编程技术网

Javascript 压缩&;调整用户上传图像的大小

Javascript 压缩&;调整用户上传图像的大小,javascript,angularjs,node.js,image,amazon-s3,Javascript,Angularjs,Node.js,Image,Amazon S3,我正在建立一个有大量用户上传图片的网站(比如airbnb) 到目前为止,该网站将上传您提交给AmazonS3的任何图像,然后相应地显示。有时这些图像太重,会增加页面加载时间 我想将此图像调整为所需的分辨率,并在可能时进行压缩(转换为jpeg),以延长加载时间并减少流量 我发现这可以通过以下方式实现: 创建HTML画布,在浏览器中进行相关转换,然后上载 将映像上载到服务器,然后运行一些后端任务以减小大小和压缩 每种方法的好处是什么?哪一种最常见?在每种情况下,我应该考虑哪些因素 我的堆栈当前为

我正在建立一个有大量用户上传图片的网站(比如airbnb)

到目前为止,该网站将上传您提交给AmazonS3的任何图像,然后相应地显示。有时这些图像太重,会增加页面加载时间

我想将此图像调整为所需的分辨率,并在可能时进行压缩(转换为jpeg),以延长加载时间并减少流量

我发现这可以通过以下方式实现:

  • 创建HTML画布,在浏览器中进行相关转换,然后上载
  • 将映像上载到服务器,然后运行一些后端任务以减小大小和压缩
每种方法的好处是什么?哪一种最常见?在每种情况下,我应该考虑哪些因素

我的堆栈当前为node.js/angular。我现在不打算使用CDN,因为该项目正处于开发阶段


提前谢谢

您需要安装imagemin并将其添加到grunt任务中。这里有一个链接供您使用
https://github.com/gruntjs/grunt-contrib-imagemin

祝你好运。

对于记录,我发现最简单的解决方案是加载用户在html5画布中选择的任何图像,并将其转换为jpeg,然后上载jpeg,在后端,我将使用node imagemagick包调整其大小

通过在前端转换为jpeg,您可以在不损失性能的同时最大限度地减少上载时间,并将输入格式标准化到后端服务