文档章节

WEB前端优化:使用“渐进”图片或“交错”图片

王尘宇
 王尘宇
发布于 2017/09/07 00:04
字数 732
阅读 11
收藏 0

一、简介

JPEG、GIF和PNG这三种图像格式都提供了一种功能,让图像能够更快地显示。图像可以以一种特殊方式存储,显示时先大概显示图像的草图,当文件全部下载后再填充细节(百度图片,QQ空间,点点网等显示大图时都使用的这种方式)。这起到一种很有意义的心理效果,因为这样使人们有东西可看,而不必坐着干等大型图像慢慢显示在屏幕上。但这种效果并不是所有浏览器都支持。 在测试各个浏览器(未说明都为最新版本)时发现: 1、Chrome对“渐进”和“交错”都支持良好 2、Safari(PC/MAC)对“渐进”不支持,“交错支持良好” 3、Fiefox对“渐进”和“交错”都支持良好 4、Opera对“渐进”和“交错”都支持良好 5、IE9对“渐进”和“交错”都不支持 测试地址: Interlace_test

  图一:基本显示效果演示

  

  图二:渐进交错显示效果演示

  上图一:

图一中我们可以发现图片是从上倒下一条一条逐渐加载的,显示效果如图一的这种JPG压缩模式叫做顺序式编码(Sequential Encoding),一次将图像由左到右、由上到下顺序处理。也是一种常见的JPG编码模式。

  上图二:

图二中我们可以发现同样是一样图片,因为图片较大图,要逐渐加载完我们才知道这张图片的大致轮廓,但是在图二上,由于使用了渐进式JPG格式,在图片加载的时候我们已经可以看到了图片的大致轮廓,这种就是渐进式JPG,使用了递增式编码(Progressive Encoding)。

  所以?

所谓的渐进式JPG格式就是采用了递增式编码的JPG,你可以通过谷歌搜索关键字JPG Progressive Encoding查的更多英文的资料,因为我发现国内这方面的介绍不是很多。 这种JPG格式是当图像传输的时间较长时,可将图像分数次处理,以从模糊到清晰的方式来传送图像(效果类似GIF在网络上的传输)。

  二、渐进式JPEG创建

1. php转换 据说是如下的代码:
<?php
$image = imagecreatefromjpeg($this->attach['target']);
//imagefilter($image, IMG_FILTER_MEAN_REMOVAL);
imageinterlace($image, 1);//php的GD库中自带的函数
imagejpeg($image,$this->attach['target']);//生成相应图片
imagedestroy($image);
?>
其他语言的转换自己去搜吧。 2. photoshop生成 大伙都知道photoshop中有个“存储为web所用格式”,然后,其中(见下图),那个连续勾选就是渐进式JPEG图片了: 据说,需要勾选那个转换为sRGB选项,在某些浏览器下,图像设置为CMYK会出现一些问题!

© 著作权归作者所有

王尘宇
粉丝 1
博文 450
码字总数 469557
作品 0
西安
私信 提问
使用渐进式 JPEG 来提升用户体验

今天才认识到原来JPEG文件有两种保存方式,分别是Baseline JPEG(标准型)和Progressive JPEG(渐进式)。两种格式有相同尺寸以及图像数据,扩展名也是相同的,唯一的区别是二者显示的方式不...

FungLeo
2016/08/17
0
0
Web 性能优化:Preload与Prefetch的使用及在 Chrome 中的优先级

摘要: 理解Preload与Prefetch。 原文:Web 性能优化:Preload,Prefetch的使用及在 Chrome 中的优先级 作者:前端小智 Fundebug经授权转载,版权归原作者所有。 这是 Web 性能优化的第 6 篇,...

Fundebug
04/11
20
0
前端每周清单第 43 期:2017 JavaScript 回顾、Rust 与 WebAssembly 开发游戏、Node.js 架构模式

前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。欢迎关注【前端之巅】微信公...

王下邀月熊
2017/12/11
0
0
前端知识点乱炖之一(HTML/CSS)

前面面试知识总结之HTML/css篇 1.行内元素、块级元素和空(void)元素有哪些? 行内元素:a 、b、span、img、input、strong、select、label、em、button、textarea。 块级元素:div、ul、li、...

w-rain
2016/03/23
71
0
【译】Web 性能优化:Preload,Prefetch的使用及在 Chrome 中的优先级

译者:前端小智 原文:medium.com/reloading/p… 今天,我们将深入研究Chrome 的网络栈,以明确 web 加载原语(如< & ) 背后的工作原理,以便你能够更有效地使用它们。 想阅读更多优质文章请猛...

前端小智
05/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
今天
3
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
今天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
今天
6
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
今天
5
0
Python机器学习之数据探索可视化库yellowbrick

背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维。陆续使用过plotly、seaborn,...

yeayee
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部