PNG图片小结

PNG:

便携式网络图形(Portable Network Graphics,PNG)是一种无损压缩位图图形格式,支持索引、灰度RGB三种颜色方案以及Alpha通道等特性。PNG的开发目标是改善并替换GIF作为适合网络传输的格式而不需专利许可,所以被广泛应用于互联网及其他方面上。

PNG另一个非正式的名称来源为递归缩写:“PNG is Not GIF”。

特性

  • 支持256色调色板技术以产生小体积文件
  • 最高支持48位真彩色图像以及16位灰度图像
  • 支持Alpha通道的透明/半透明特性。
  • 支持图像亮度的Gamma校准信息。
  • 支持存储附加文本信息,以保留图像名称、作者、版权、创作时间、注释等信息。
  • 使用无损压缩。
  • 渐近显示和流式读写,适合在网络传输中快速显示预览效果后再展示全貌。
  • 使用CRC防止文件出错。
  • 最新的PNG标准允许在一个文件内存储多幅图像。

由于PNG是无损压缩,那也就意味着他可以重新精确的改造原图片(1.过滤,2.压缩)。

1.过滤(Filtering)

差分编码:又叫增量编码,差分编码的简单例子是储存序列式资料之间的差异(而不是储存资料本身):不存“2,3,4,5,6,7,8”,而是存“2,1,1,1,1,1,1”。

[2,3,4,5,6,7,8] can become [2,1,1,1,1,1,1], where

[2, 3–2=1, 4–3=1, 5–4=1, 6–5=1, 7–6=1, 8–7=1]

单独使用用处不大,但是在序列式数值常出现时可以帮助压缩资料。由于改变通常很小(平均占全部大小的2%),差分编码能大幅减少资料的重复。一连串独特的delta档案在空间上要比未编码的相等档案有效率多了。Windows中的差分压缩也是利用这种编码方式

PNG图片存储用的也是差分编码即是Filtering。

2.压缩

主要用到LZ77压缩算法。

参考:https://medium.com/@duhroach/how-png-works-f1174e3cc7b7

关于PNG的格式:

如果不用透明(alpha),RGBA 32bpp选项会浪费图片大小的 ¼,可以用24bpp truecolor format (or just use JPG).当然,如果图片包含灰图模式的数据,你应该只用8bpp.存储。总之,像素存储格式,选择需要用心呀。

INDEXED format.

INDEXED color mode, basically chooses the best 256 colors to use, and replaces all your pixels with an index into that color palette. The result, is a reduction from 16 million colors (24bpp) to 256, which is a significant savings.

参考:https://medium.com/@duhroach/reducing-png-file-size-8473480d0476#.ut4mvxkcv

时间: 2024-10-19 00:53:19

PNG图片小结的相关文章

ubuntu 平台上 安装 opencv实践

install opencv on ubuntu 12.10 apt-get install on shiyanlou 的速度? apt-source ? After this operation, 100 MB of additional disk space will be used. step 1 setp 1.1 get opencv source 准备源码 opencv Opencv的源码,2.4.9,90M左右 百度网盘链接: 或者类似方法 wget http://downloads

C#开发Unity游戏教程之Unity中方法的参数

C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别方法的作用吧.既然C#的语法规定方法就应该这么写,肯定是有一定道理的.如果是上升到战略意义的道理,连作者也不是很明白,但是作者知道这对括号里可以添加“参数”. Unity中参数的作用 要说明参数的作用,就必须从方法说起.方法可以处理变量中的数据,进而影响游戏对象的行为逻辑,这是本章前面一直在强调的.

python—sift特征提取

一.SIFT提出的目的和意义 二.SIFT的特征简介 三.SIFT算法实现步骤简述 四.图像集 五.SIFT算法代码实现 代码 结果截图 小结 六.SIFT实验总结 一.SIFT提出的目的和意义 1999年David G.Lowe教授总结了基于特征不变技术的检测方法,在图像尺度空间基础上,提出了对图像缩放.旋转保持不变性的图像局部特征描述算子-SIFT(尺度不变特征变换),该算法在2004年被加以完善. 二.SIFT的特征简介 SIFT算法可以解决的问题 目标的旋转.缩放.平移(RST) 图像仿

SVG图片技术小结

今天在公司没事,研究了一下最近流行的SVG技术,发现,随着css3的不断流行,和浏览器技术的发展,SVG将会取代网站大量图片,成为网站图片展现的主流. AI是我们常用的矢量图编辑器,现在AI可以直接另存SVG图片,SVG图片相比传统图片,占位更小,浏览更方便!而且可扩展性更强! 下面看一个SVG的例子: <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//

android 加载图片oom若干方案小结

本文根据网上提供的一些技术方案加上自己实际开发中遇到的情况小结. 众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视手机而定).一般我们可以通过获取当前线程的可运行内存来判断,比如系统分给当前运行内存只有16M,而你的图片就有16M,这肯定会oom的. 相关知识介绍 1.颜色模型 常见的颜色模型有RGB.YUV.CMYK等,在大多数图像API中采用的都是RGB模型,Android也是如此:另外,在Android中还有包含透明度Alpha的颜色模型

PHP服务器文件管理器开发小结(七):应用jQueryUI预览服务器图片

上一节讨论了利用jQueryUI实现用户友好的新建.查看和编辑文件的界面.然而,这些界面都是针对纯文本的,如果是图像的话,查看文件仅提供纯文本就很不友好了.因此,需要为前端提供图像浏览的方法. 先提供前端JavaScript的代码,首先是"原材料": <div id="dialogImage" style="display:none"> <img  src="" id="imgView"/

response小结(三)—输出随机图片(验证码功能实现)

本文是一个很简单的向网页上输出验证码的实现喲!通过注释解释清楚了每一步! Myeclipse下的Package Explorer显示文件结构如下: ResponseDemo.java实现了输出随机图片的功能: 1 package com.yyz.response; 2 3 import java.awt.Color; 4 import java.awt.Font; 5 import java.awt.Graphics; 6 import java.awt.image.BufferedImage;

圆角之图片实现方法小结二

尼玛,昨天又被IE6坑了一个下午.哎,IE6你虐我千百遍,我却待你如初恋.做个网页不容易,每次其他浏览器显示正常,一到IE6测试的时候,不说了,都是泪. 不过没有过不去的坎,继续用我坚韧的毅力来克服它.嘿嘿,废话一大堆了,直入正题…… 昨天总结的四张图片实现圆角经IE6测试的时候发现绝对定位bottom:0:的时候问题,如图: 看到bottom:0:无法覆盖最下面的底边了. 原因分析:在IE6中子框在父框内适用绝对定位时候Bottom:0,会发生子框内背景图片无法到底,如图: 解决方法:将原来图

圆角之图片实现方法小结

这几天一直在捣鼓图片实现圆角的方法.捣鼓了两天,累的脑都缺氧了.终于功夫不负有心人,在我一直不断尝试和修改下最终成功完成了图片实现圆角效果. 好了,废话不多说,直接如题. 这里先总结下,图片实现圆角效果我分为两种: 一.上下两张图,中间自适应高度 实现原理:利用切割圆角图片为上下两张,中间利用border-left(right):1px solid black,高度不写(高度自适应). 具体步骤:1:建立三个top,mid,bottom 2: 在top,bottom分别加入圆角背景图片. 3:在