源码论坛公告:本站是一个交流学习建站资源的社区论坛,旨在交流学习源码脚本等资源技术,欢迎大家投稿发言! 【点击此处将锦尚放在桌面

源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 641|回复: 0
打印 上一主题 下一主题

[原创] 前端开发中的图片优化

[复制链接]

471

主题

470

帖子

678

金币

初级会员

Rank: 1

积分
1685
QQ
跳转到指定楼层
1#
发表于 2013-10-30 10:27:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  现在的互联网,是一个用户体验至上的时代,大多数公司都会把如何提高产品的易用性放在首要位置。如何提高产品的质量则体现在项目开发的很多阶段,例如产品设计、UI设计和前端开发等。而图片优化在提高产品质量上也起到了举足轻重的作用,这也就是为什么越多的产品团队更加关注这个问题。
  本文关于图片优化的内容主要由两部分构成:
  1. 整理总结网上关于图片优化的一些方式方法。
  2. 自己在项目开发过程中实际遇到的问题以及用到的图片优化方案。
  如有不足之处,欢迎大家指出并补充。
  1. 简约而不简单
  Win8和iOS7的出现,将互联网行业中很多产品设计带回到原点,或许更是另一个新的起点。Win8的Metro UI、iOS7中图标的扁平化设计、一直崇尚简约的豆瓣网、还有顶着时代工匠称号的老罗所设计的锤子ROM,无一不体现着简约的风格。
  言归正传,回到我们图片优化的主题上。在产品设计和UI设计阶段,除了内容图片,其他的图片都是起修饰的作用。也就是对于传递信息来说并非本质性的。所以最大的优化就是不要图片。在进入到研发阶段之前,就要确认设计,设计本身是否需要用到那么多的图片,还是说可以做到更简洁!
  2. 样式代替图片
  Chrome,FF等浏览器厂商为互联网的发展做了这么多贡献,为什么我们还要让那些不兼容CSS3的浏览器阻碍互联网的发展呢。因此,让我们直接使用CSS样式代替图片来实现修饰效果!例如:半透明、圆角、阴影、高光、渐变等。这些效果主流的浏览器都能够完美支持,而对于那些低端浏览器,我们并不会完全抛弃他们,“渐进增强”则是一个很好的解决方案。至于什么是渐进增强,这里不再用过多篇幅去解释,如果感兴趣可以参考CSS“渐进增强”在web制作中常见应用举例。
  3. 选择最合适的图片
  我们常见的图片格式有JPEG、GIF、PNG。
  基本上,内容图片多为照片之类或图片构成较复杂的情况,适用于JPEG。如网站中的Banner图、轮播图、大尺寸背景图等。
  修饰图片通常更适合用无损压缩的PNG。而我们主要用到的PNG图片又分为PNG-8和PNG-24两种,PNG-8格式不支持半透明,也是IE6兼容的图片存储方式。如果对图片质量要求较高的半透明或全透明背景,保存成PNG-24更合适。有时候会遇到在IE6下应用PNG-24图片的情况,关于IE6下PNG Alpha透明的解决方案可以参考IE6中PNG Alpha透明。我在项目中常用的方法是AlphaImageLoader筛选器。
  GIF基本上除了GIF动画外不要使用。
  除了这些格式之外,Chrome、新版Opera、Android 4+支持WebP格式,IE 9+、IE mobile 10+支持JPEG XR。这两个新格式都支持无损和有损压缩,都具有更良好的压缩比。当然这需要为不同的浏览器返回不同的图片,增加了开发成本,也增加存储成本。不过你省了流量或者相同流量下改善了图片质量,提升了用户体验。这就需要根据项目需求进行取舍了。
  4. 常用的图片优化技巧http://hshgylc580.com
  CSS Sprites,将同类型的图标或按钮等背景图合到一张大图中,减少页面请求。
  Icon Font,将图标做成字体文件。优点是图标支持多个尺寸,兼容所有浏览器,减少页面请求等。美中不足的是只支持纯色的icon。
  SVG,对于绝大多数图案、图标等,矢量图更小,且可缩放而无需生成多套图。现在主流浏览器都支持SVG了,所以可放心使用!
  图片压缩工具,可以在图片上线前使用压缩工具进行压缩,获得更高的压缩比。我常用的压缩工具为Yahoo的Smush.it。
  5. 适用各种资源而不限于图片的优化
  data url
  Base64是网络上最常见的用于传输8Bit字节的编码方式之一,可用于在HTTP环境下传递较长的标示信息。将图片转化为base64编码格式,资源内嵌于CSS或HTML中,不必单独请求。
  该方式的优点是:
  1. 减少了HTTP请求http://llsylc802.com
  2. 避免了图片重新上传,还要清理缓存的问题
  不足之处是:
  1. IE6, IE7不支持该类型编码的图片作为背景图
  2. 增加了CSS文件的尺寸
  3. 维护成本较高http://dlylc827.com
  按照HTTP协议设置合理的缓存
  具体的缓存策略(如永久缓存 + 重命名)、部署策略(如反向代理、CDN等)这里就不展开了。
  Responsive设计
  为了适应现在众多分辨率和设备像素比的移动设备,要产生多套不同大小和分辨率的图片,然后配合Media Query进行开发。这里推荐在进行移动端页面开发时使用SVG或Icon Font等技术。这些技术可以完美支持Retina设备。关于更多响应式方案,可以参考《响应式Web设计: HTML5和CSS3实践》这本书或网上相关资料,这里不再展开。zxcmnghjgyius014
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

锦尚中国源码论坛

聚合标签|锦尚中国,为中国网站设计添动力 ( 鲁ICP备09033200号 ) |网站地图

GMT+8, 2024-11-17 04:53 , Processed in 0.106831 second(s), 26 queries .

带宽由 锦尚数据 提供 专业的数据中心

© 锦尚中国源码论坛 52jscn Inc. 非法入侵必将受到法律制裁 法律顾问:IT法律网 & 褚福省律师 锦尚爱心 版权申诉 版权与免责声明