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

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

有损压缩与无损压缩

有损压缩-你看到的不一定是真实的

按照我的理解有损压缩就是在存储图像的时候并不完全真实的记录图像上每个像素点的数据信息,它会根据人眼观察现实世界的特性(人眼对光线的敏感度比对颜色的敏感度要高,生物实验证明当颜色缺失时人脑会利用与附近最接近的颜色来自动填补缺失的颜色)对图像数据进行处理,去掉那些图像上会被人眼忽略的细节,然后使用附近的颜色通过渐变或其他形式进行填充。这样既能大大降低图像信息的数据量,又不会影响图像的还原效果。

JPG是我们最常见的采用有损压缩对图像信息进行处理的图片格式。JPG在存储图像时会把图像分解成8*8像素的栅格(如上图),然后对每个栅格的数据进行压缩处理,当我们放大一幅图像的时候,就会发现这些8*8像素栅格中很多细节信息被去除,而通过一些特殊算法用附近的颜色进行填充(为了让大家看得更清楚我将图像的压缩比率调到很低)。这也是为什么我们用JPG存储图像有时会产生块状模糊的原因。

无损压缩-最精确的拼图

相对有损压缩而言无损压缩则会真实的记录图像上每个像素点的数据信息,但为了压缩图像文件的大小会采取一些特殊的算法。无损压缩的压缩原理是先判断图像上哪些区域的颜色是相同的,哪些是不同的,然后把这些相同的数据信息进行压缩记录,(例如一片蓝色的天空之需要记录起点和终点的位置就可以了),而把不同的数据另外保存(例如天空上的白云和渐变等数据)。

PNG是我们最常见的一种采用无损压缩的图片格式。无损压缩在存储图像前会先判断图像上哪些地方是相同的哪些地方是不同的,为此需要对图像上所有出现的颜色进行索引(如上图),我们把称这些颜色称为索引色。索引色就好比绘制这幅图像的“调色版”,PNG在显示图像的时候则会用“调色版”上的这些颜色去填充相应的位置。

这里大家可能会疑惑既然PNG采用的是无损压缩为什么我们保存的PNG格式图片还会有失真呢?这是因为无损压缩只是说它的压缩方式会尽可能真实的还原图像,但从它的压缩原理我们可以知道它是通过索引图像上相同区域的颜色进行压缩和还原的,这就意味着只有在图像上出现的颜色数量小于我们可以保存的颜色数量时,我们才能真实的记录和还原图像,否则就会丢失一些图像信息(PNG8最多只能索引256种颜色,所以对于颜色较多的图像不能真实还原;PNG24则可以保存1600多万种颜色,基本能够真实还原我们人类肉眼所可以分别的所有颜色;PNG格式最多可以保存48位颜色通道)。而对于有损压缩来说,不管图像上的颜色多少,都会损失图像信息。

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

猜你喜欢

  • 分享十款最出色的PHP安全开发库中文详细介绍

    2023-06-15 01:04:59
  • tensorflow实现打印ckpt模型保存下的变量名称及变量值

    2021-07-02 21:19:25
  • python自动化运维之Telnetlib的具体使用

    2022-09-24 22:11:16
  • SQL中where语句的用法及实例代码(条件查询)

    2024-01-17 22:37:16
  • 详解Appium+Python之生成html测试报告

    2022-12-21 22:38:51
  • python 实现多线程下载m3u8格式视频并使用fmmpeg合并

    2022-04-18 22:15:37
  • python asyncio 协程库的使用

    2022-09-13 13:28:16
  • wdcp添加tomcat,同时支持php和java教程

    2023-10-09 10:39:38
  • python数据挖掘需要学的内容

    2021-02-26 00:54:13
  • position:relative/absolute无法冲破的等级

    2007-05-11 17:03:00
  • 如何取得所有的Session变量

    2008-06-08 13:59:00
  • 在数据库‘master’中拒绝CREATE DATABASE权限问题的解决方法

    2011-10-24 19:46:55
  • Python列表list内建函数用法实例分析【insert、remove、index、pop等】

    2022-01-13 10:18:24
  • Thinkphp微信公众号支付接口

    2024-05-11 09:16:51
  • MySql 5.6.14 Win32位免安装解压缩版配置教程

    2024-01-13 01:27:44
  • 网页中常用数字/字母序号与代码对照表

    2009-03-19 14:00:00
  • MySQL学习之基础操作总结

    2024-01-12 14:42:34
  • 详解Python字符串切片

    2021-09-10 05:10:43
  • VUE实现图片验证码功能

    2023-07-02 16:56:57
  • selenium3+python3环境搭建教程图解

    2022-09-04 14:47:16
  • asp之家 网络编程 m.aspxhome.com