常见图片文件格式
常见格式包括:BMP JPEG GIF PNG
1、BMP
bmp文件头 : 14Byte,提供文件的格式、大小等信息;(42 4D :BM,Windows位图)
位图信息头 : 40Byte,提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息;
调色板 : 大小由颜色索引数决定;
位图数据 : 大小由图像尺寸决定,图像数据;
存储方式 : 小端方式。
2、JPEG
1、JPEG是一种针对相片图像而广泛使用的一种有损压缩标准方法。这个名称代表Joint Photographic Experts Group(联合图像专家小组)。
2、JPEG的图片使用的是YCrCb颜色模型。
3、JPEG文件中的字节是按照大端方式排列的,高地址存储低位数据,低地址存储高位数据。
4、由于早期操作系统只支持3个字符扩展名,因此 .JPG 广泛沿用至今。
一个由C-Cube Microsystems等公司所创建的额外标准,称为JFIF(JPEG File Interchange
Format,JPEG文件交换格式)详细说明如何从一个JPEG流,产出一个适合于电脑存储和传输(像是在互联
网上)的文件。在普遍的用法,当有人称呼一个"JPEG文件",一般而言他是意指一个JFIF文件,或有时候
是一个Exif JPEG文件。然而,也有其他以JPEG为基础的文件格式,像是JNG。
JFIF文件格式直接使用JPEG标准为应用程序定义的许多标记,因此JFIF格式成了事实上JPEG文件交换格式
标准。JPEG的每个标记都是由2个字节组成,其前一个字节是固定值0xFF。每个标记之前还可以添加数目不
限的0xFF填充字节(fill byte)。下面是其中的8个标记:
SOI 0xD8 图像开始
APP0 0xE0 JFIF应用数据块
APPn 0xE1 - 0xEF 其他的应用数据块(n, 1~15)
DQT 0xDB 量化表
SOF0 0xC0 帧开始
DHT 0xC4 霍夫曼(Huffman)表
SOS 0xDA 扫描线开始
EOI 0xD9 图像结束
3、GIF
GIF(Graphics Interchange Format)的原义是“图像互换格式”,是CompuServe公司在 1987年开发
的图像文件格式。GIF文件的数据,是一种基于LZW算法的连续色调的无损压缩格式。其压缩率一般在50%左
右,它不属于任何应用程序。目前几乎所有相关软件都支持它,公共领域有大量的软件在使用GIF图像文
件。GIF图像文件的数据是经过压缩的,而且是采用了可变长度等压缩算法。GIF格式的另一个特点是其在一
个GIF文件中可以存多幅彩色图像,如果把存于一个文件中的多幅图像数据逐幅读出并显示到屏幕上,就可
构成一种最简单的动画。
图像互换格式主要分为两个版本,即图像互换格式87a和图像互换格式89a。
图像互换格式87a:是在1987年制定的版本。
图像互换格式89a:是在1989年制定的版本。在这个版本中,为图像互换格式文档扩充了图形控制区块、备
注、说明、应用程序接口等四个区块,并提供了对透明色和多帧动画的支持。
特点:
优秀的压缩算法使其在一定程度上保证图像质量的同时将体积变得很小。
可插入多帧,从而实现动画效果。
可设置透明色以产生对象浮现于背景之上的效果。
由于采用了8位元压缩,最多只能处理256种颜色,故不宜应用于真彩色圖片。
GIF文件头:6个字节
标识符(3字节) ---GIF
版本(3字节) ---87a (or 89a)
GIF文件结束块:
结束块(GIF Trailer)表示GIF文件的结尾,它包含一个固定的数值:0x3B。
4、PNG
便携式网络图形(Portable Network Graphics,PNG)是一种无损压缩的位图图形格式,支持索引、
灰度、RGB三种颜色方案以及Alpha通道等特性。PNG的开发目标是改善并取代GIF作为适合网络传输的格式
而不需专利许可,所以被广泛应用于互联网及其他方面上。
PNG另一个非正式的名称来源为递归缩写:“PNG is Not GIF”。
特点:
支持256色调色板技术以产生小体积文件
最高支持48位真彩色图像以及16位灰度图像。
支持Alpha通道的透明/半透明特性。
支持图像亮度的Gamma校准信息。
支持存储附加文本信息,以保留图像名称、作者、版权、创作时间、注释等信息。
使用无损压缩。
渐近显示和流式读写,适合在网络传输中快速显示预览效果后再展示全貌。
使用CRC防止文件出错。
最新的PNG标准允许在一个文件内存储多幅图像。
PNG文件包括8字节文件署名(89 50 4E 47 0D 0A 1A 0A,十六进制),用来识别PNG格式。
89
用于检测传输系统是否支持8位的字符编码(8 bit data),用以减少将文本文件被错误的识别成PNG文件的机会,反之亦然。
50 4E 47
PNG每个字母对应的ASCII,让用户可以使用文本编辑器查看时,识别出是PNG文件。
0D 0A
DOS风格的换行符(CRLF)。用于DOS-Unix数据的换行符转换。
1A
在DOS命令行下,用于阻止文件显示的文件结束符。
0A
Unix风格的换行符(LF)。用于Unix-DOS换行符的转换。
网友评论