如题,网站主要是用手机访问的,图片比较多,太大的话网页刷的太慢了,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/
压缩图片从前端这边,知道的有两种方法:
针对于上传图片的:http://.com/q/1010000002550047/a-1020000002550069
现在新出来了一个版本: localResizeIMG3针对于项目里使用到的图片的:
通过grunt发布程序时自动运行一个任务去压缩图片,这种方法是一直在用的
详细内容见:grunt-contrib-imagemin
需要你根据介绍配置到你自己的项目里面
如果没什么开发能力的话,建议用又拍or七牛云存储就可以了,它们都自带了缩略图功能
上传图片以后,前端用后缀直接调用缩略图就行了,简单方便,不需要技术含量
顺带就是他们的流入流量都是不计费的,不过存储空间计费
七牛 客户端直传 比较快。 3M左右的都可以在客户端直接上传服务器!
如果是网页素材(别告诉我是内容的图片)建议用CSS sprite,CSS sprite加载一次图片好过加载几次(长痛不如短痛),还有一些js&css库最好用国内七牛,又拍,百度&yepcdn的..国外的用cdnjs...
我知道有个很强大的工具 ImageMagick。