首页 > 请问怎么压缩上传图片的大小

请问怎么压缩上传图片的大小

如题,网站主要是用手机访问的,图片比较多,太大的话网页刷的太慢了,wifi还好,2G 3G根本刷不出来


可以用光影魔术手,简单快捷批量操作


应该要在图片上传的时候生成相应的缩略图,然后手机访问的时候先给缩略图,在用户点开图片时再给大图


www.tinypng.com
不谢


libjpeg是广泛使用的开源JPEG图像库(参考 http://en.wikipedia.org/wiki/Libjpeg ),安卓也依赖libjpeg来压缩图片。通过查看源码,我们会发现安卓并不是直接封装的libjpeg,而是基于了另一个叫Skia的开源项目(http://en.wikipedia.org/wiki/Skia_Graphics_Engine)来作为的图像处理引擎。Skia是谷歌自己维护着的一个大而全的引擎,各种图像处理功能均在其中予以实现,并且广泛的应用于谷歌自己和其它公司的产品中(如:Chrome、Firefox、Android等)。Skia对libjpeg进行了良好的封装,基于这个引擎可以很方便为操作系统、浏览器等开发图像处理功能。详细说明:http://blog.sina.com.cn/s/blog_12ce70a430102v1p3.html

源代码:https://github.com/bither/bither-android-lib


http://.com/blog/wtser/1190000000359160
使用Mobify.js让你的图片自动响应化


推荐一个在线的工具:http://www.mmtrix.com/opt/imgopt


一般公式都会有图片存储平台吧,前台传递的图片,后台处理后会保存几种像素大小的。


就题主的需求而言,使用Nginx的HttpImageFilterModule是再适合不过的了。
网上有很多不错的经验谈。

注意到题主加的标签里有java,我这里正好有相关的实现,用的是:

<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>

sample:

Thumbnails.of(inputStream).size(150, 150).keepAspectRatio(false).outputQuality(1.0d).toFile(new File(path));

当然,自己写兴许会更好一些,但我自己尝试后出现了效果、效率、CMYK等问题。


这个应该是服务端的事情。 直接用js压缩上传的文件这个我不清楚。
在服务端的话, 可以在接受发送过来的post请求的时候, 执行压缩图片的任务流, 把上传的图片都压缩了。 然后后续的访问就直接下载压缩后的图片。
除了压缩图片, 在web端还有一些加速网站启动速度的技术。 比如CSS sprite, lazyload.合并压缩js和css代码。


Try this library: https://code.google.com/p/thumbnailator/


压缩图片从前端这边,知道的有两种方法:

  1. 针对于上传图片的:http://.com/q/1010000002550047/a-1020000002550069
    现在新出来了一个版本: localResizeIMG3

  2. 针对于项目里使用到的图片的:
    通过grunt发布程序时自动运行一个任务去压缩图片,这种方法是一直在用的
    详细内容见:grunt-contrib-imagemin
    需要你根据介绍配置到你自己的项目里面


如果没什么开发能力的话,建议用又拍or七牛云存储就可以了,它们都自带了缩略图功能
上传图片以后,前端用后缀直接调用缩略图就行了,简单方便,不需要技术含量

顺带就是他们的流入流量都是不计费的,不过存储空间计费


七牛 客户端直传 比较快。 3M左右的都可以在客户端直接上传服务器!


如果是网页素材(别告诉我是内容的图片)建议用CSS sprite,CSS sprite加载一次图片好过加载几次(长痛不如短痛),还有一些js&css库最好用国内七牛,又拍,百度&yepcdn的..国外的用cdnjs...


我知道有个很强大的工具 ImageMagick。

【热门文章】
【热门文章】