//Description: 图片格式总结
//Create Date: 2021-10-28 10:10:39
//Author: channy
记录各种图片格式
bfType:2字节,文件类型; bfSize:4字节,文件大小; bfReserved1:2字节,保留,必须设置为0; bfReserved2:2字节,保留,必须设置为0; bfOffBits:4字节,从头到位图数据的偏移;
位图信息头 位图信息头一共40字节,包含如下内容: biSize:4字节,信息头的大小,即40; biWidth:4字节,以像素为单位说明图像的宽度; biHeight:4字节,以像素为单位说明图像的高度,同时如果为正,说明位图倒立(即数据表示从图像的左下角到右上角),如果为负说明正向; biPlanes:2字节,为目标设备说明颜色平面数,总被设置为1; biBitCount:2字节,说明比特数/像素数,值有1、2、4、8、16、24、32; biCompression:4字节,说明图像的压缩类型,最常用的就是0(BI_RGB),表示不压缩; biSizeImages:4字节,说明位图数据的大小,当用BI_RGB格式时,可以设置为0; biXPelsPerMeter:表示水平分辨率,单位是像素/米,有符号整数; biYPelsPerMeter:表示垂直分辨率,单位是像素/米,有符号整数; biClrUsed:说明位图使用的调色板中的颜色索引数,为0说明使用所有; biClrImportant:说明对图像显示有重要影响的颜色索引数,为0说明都重要;
调色板(selected)
位图数据
Magic Number | Type | Encoding |
---|---|---|
P1 | Bitmap | ASCII |
P2 | Graymap | ASCII |
P3 | Pixmap | ASCII |
P4 | Bitmap | Binary |
P5 | Graymap | Binary |
P6 | Pixmap | Binary |
只有黑白两种颜色的图像格式,1是黑色,0是白色。
灰度图
PPM(Portable Pixmap Format)
P6
# Created by IrfanView
1280 960
255
,22,22+11.44156/34.23+/0,01/34.21-10/32.21.21265384.3/051384574352/32265376265273051/51/51.403954::-33/3426737:,03,1505929?.5;#-/#%%'!%($&%#%$"&' $%#'(&*+&')%&(()+)*,+,.()+&')()+)*,*+-+,.-.0./1,-/+,.-.0(,-)-.)-.,01-12)-.)-0*.1-.3./4108219,20(3/(40#//%&$$&$%&%#$#+"*%$%(*)
上图例子中,编码格式为P6,图像大小为1280*960,最大像素值255,首个像素的rgb是0x2c3232
(Portable Network Graphic Format,PNG)
GIF(Graphics Interchange Format)
数据块可分成3类:控制块(Control Block),图形描绘块(Graphic-RenderingBlock)和专用块(Special Purpose Block)。