TinyPNG压缩原理
原理:通过减少颜色数量,将24bit的图像文件转成8bit,来大幅缩小图片体积。另外,还会移除图像文件不必要的元数据,进一步压缩体积。
24bit
如果是BMP格式,每个像素可以支持RGB各8bit,即R8,G8,B8,不同的红绿蓝组合可以构成256^32563种颜色,就需要3个8位的2进制数,总共24位,所以颜色深度是24 Bit。
- 存储一个像素值需要3B的内存。
8bit
如果一个图片支持256种颜色(如GIF格式),那么就需要256=2^8 个不同的值来表示不同的颜色。也就是从0到255,用二进制表示就是从00000000到11111111,总共需要8位二进制数,所以颜色深度是8 Bit。
- 存储一个像素值需要1B的内存。
该压缩方式的最大优点:在缩小图片文件体积的同时,能尽可能保证清晰度。
属于有损压缩
目前仅支持jpg和png格式压缩。
官网给出:
通过有选择地减少图像中的颜色数量,存储数据所需的字节数更少。
如何工作?
图像中相似的颜色会组合在一起。这种技术被称为“量化”。通过减少颜色数量,24位png文件可以转换为更小的 8 位索引彩色图像。所有不必要的元数据也被剥离。结果更好的 PNG 文件具有100% 的透明度支持。