图片格式与设计那点事儿(4)

作者:平四 来源:taobaoUED 时间:2011-01-06 12:17:00 

2、实际应用

什么时候应该使用PNG

示例1

下图是淘宝网最常见的一个图片即“立刻购买”按钮,这里我尝试用JPG和PNG8格式分别进行保存,可以看到保存的结果有两个值得注意的地方:

  1. 1、JPG保存的文件大小是PNG保存的文件大小的2倍

  2. 2、JPG不仅文件更大并且还出现了噪点(如图中红色方框标注的)

那么是什么原因造成这样的差异呢?

首先我们可以看出“立刻购买”这个按钮是在photoshop中用矢量工具绘制出来的,其渐变填充是非常规则的线性渐变,文字颜色和描边等都是采用纯色,所以这个图像所包含的色彩信息非常有限。根据前面我们介绍的无损压缩的特性,当用PNG存储这个图像时,只需要保存很少的色彩信息就可以真实还原这个图像。而对于JPG格式来说大小主要决定于图像的颜色层次,所以在这种颜色较少但对比强烈的情况下,反而不能很好的压缩文件大小。

另外根据有损压缩的压缩算法JPG会在图像中通过渐变或其他方式填充一些被删除的数据信息来对图像进行压缩,图中红色和白色的地方由于色差较大,JPG在压缩过程中就会填充一些额外杂色进去,反而影响的图像的质量。这也是为什么JPG不利于存储大块颜色相近区域以及亮度差异十分明显的图像的原因。

示例2

我们再来看另外一个应用场景,下图是在淘宝彩票页面使用的一个Banner图像。同样用PNG8和JPG进行了保存,可以发现当用PNG8保存时不仅保证了图像的质量且图像文件的大小仅有8.3K,而当用JPG 100%保存时文件大小则增加到44.2K,如果不经放大可能还看不出具体的差异,但实际和前面一样也会出现不必要的噪点。如果我们要达到PNG8的压缩率采用JPG 45%进行保存,则图像会出现较严重的失真。

由此我们可以得出结论,具备以下条件的图像更适合用PNG8格式进行存储:

  1. 1、图像上颜色较少,并且主要以纯色或者平滑的渐变色进行填充。

  2. 2、具备较大亮度差异以及强烈对比的简单图像(如“立刻购买”按钮中的背景和文字)。

根据经验具备上述条件的图像一般是使用photoshop或其他软件中的矢量工具进行绘制然后再保存成位图的图像。

标签:图片,格式,设计,jpg,png
0
投稿

猜你喜欢

  • ms SQL server数据库备份、压缩与SQL数据库数据处理的方法

    2024-01-18 14:54:04
  • 关于pip的安装,更新,卸载模块以及使用方法(详解)

    2022-03-15 07:21:36
  • Javascript中Eval函数的使用

    2024-03-24 19:55:23
  • 从np.random.normal()到正态分布的拟合操作

    2023-09-09 18:00:01
  • element-UI el-table树形数据 修改小三角图标方式

    2023-07-02 17:09:53
  • 一个非常实用的php文件上传类

    2023-08-15 17:04:56
  • linux环境下配置mysql5.6支持IPV6连接的方法

    2024-01-20 01:56:13
  • 别人复制你网站的文章时自动加上注释

    2009-02-09 13:20:00
  • python字典遍历数据的具体做法

    2022-04-19 16:45:33
  • 用python 绘制茎叶图和复合饼图

    2023-08-04 10:34:54
  • Golang实现WebSocket服务的项目实践

    2024-04-28 09:15:51
  • python数据分析之DataFrame内存优化

    2021-09-03 23:08:29
  • 老生常谈Python startswith()函数与endswith函数

    2023-06-03 02:02:42
  • Javascript 动画初探(实现)

    2009-02-06 15:56:00
  • Python Pillow Image Invert

    2023-10-02 12:33:30
  • MySQL表锁、行锁、排它锁及共享锁的使用详解

    2024-01-22 09:30:47
  • Python实现合并同一个文件夹下所有txt文件的方法示例

    2023-10-11 00:24:22
  • django queryset 去重 .distinct()说明

    2022-10-12 01:01:00
  • 解析:轻松掌握 字符串文字字符集和校对

    2008-12-17 17:07:00
  • Python关于抽奖系统的思考与设计思路

    2022-06-09 12:53:36
  • asp之家 网络编程 m.aspxhome.com