图片及压缩优化相关知识梳理(一)

图像

真彩图像:每个像素由R、G、B三个分量表示,每个通道取值范围0~255。数据类型一般为8位无符号整形。
灰度图像:每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度。
二值图像(黑白图像):每个像素点只有两种可能,0和1.0代表黑色,1代表白色。数据类型通常为1个二进制位。
索引图像:类似于查字典,为了解决彩色图像消耗空间大的问题,一般应用于色彩构成比较简单的场景。

矢量图

无限放大不失真

位图

不能无限放大,放大会失真
色值多,逼真
图片,canvas

透明度

alpha 透明
索引色透明
不透明

alpha通道

阿尔法通道是一个8位的灰度通道,该通道用256及灰度来记录图当中的透明度信息,定义透明、不透明和半透明区域,其中白表示不透明,黑色表示透明,灰度表示透明。

什么是PNG

PNG全称叫便携式网络图型(Portable Network Graphics)是目前网络传输和页面展示中最常用的图片格式,首先它有几个主要特点:无损压缩体积小支持透明

PNG格式

bit 比特 表示信息的最小单位,是二进制数的一位包含的信息

PNG图片主要格式:PNG8/ PNG24/ PNG32
PNG8:8bit 2^8 256颜色种类
索引色透明只可以简单的指定一个像素点是不是透明(是或者不是),而 Alpha 透明则可指定该像素点的透明的程度(透明度),如30%的透明度。
PNG24:每8bit去表示R、G、B,不支持透明
色彩更丰富,2^24种颜色
ps导出的png24其实是png32
PNG32:多一个alpha通道,支持256级灰度透明

PNG图片文件存储结构

由文件头+各种各样的PNG数据块Chunk组成。
其中数据块分为两类:
关键数据块(必须)、辅助数据块
文件标志由8个字节数据组成: 89 50 4E 47 0D 0 A 1A 0A,其中50 4E 47对应的ASCII值是”PNG“
关键数据库由4部分组成:
文件头数据块 IHDR
调色板数据块 PLTE (根据图像的色深可选)
图像数据块 IDAT
辅助数据块一共有14个。
图像结束数据块 IEND

数据块格式:

字段名 大小(单位:字节) 描述
length 4 指定数据块中的数据长度
chunk type code 4 数据块类型,例如:IHDTR、PLTE等
chunk data ~ 存储数据
CRC 4 循环冗余码

参考文献:
PNG文件存储格式定义
分析PNG数据结构

PNG的压缩

预解析 Prediction

Delta encoding
差分编码,对图片进行预处理
目的:尽可能将png图片的数据值转换成一组重复的、低的值,这样更容易压缩

压缩 Compression

DEFLATE是同时使用了LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法。

PNG、JPG、GIF三种图片格式的区别

[分析链接](https://blog.csdn.net/minggeqingchun/article/details/78748550)

posted @ 2019-04-08 16:48  Hi娜娜  阅读(359)  评论(0编辑  收藏  举报