标题：BMP
文件格式
格式组成典型的BMP图像文件由四部分组成：
1：位图头文件数据结构，它包含BMP图像文件的类型、显示内容等信息；
2：位图信息数据结构，它包含有BMP图像的宽、高、压缩方法，以及定义颜色等信息；
3：调色板，这个部分是可选的，有些位图需要调色板，有些位图，比如真彩色图（24位的BMP）就不需要调色板；
4：位图数据，这部分的内容根据BMP位图使用的位数不同而不同，在24位图中直接使用RGB，而其他的小于24位的使用调色板中颜色索引值。格式类型位图一共有两种类型，即：设备相关位图（DDB）和设备无关位图（DIB）。DDB位图在早期的Windows系统（Windows 3.0以前）中是很普遍的，事实上它也是唯一的。然而，随着显示器制造技术的进步，以及显示设备的多样化，DDB位图的一些固有的问题开始浮现出来了。比如，它不能够存储（或者说获取）创建这张图片的原始设备的分辨率，这样，应用程序就不能快速的判断客户机的显示设备是否适合显示这张图片。为了解决这一难题，微软创建了DIB位图格式。
设备无关位图 (Device-Independent Bitmap) 
DIB位图包含下列的颜色和尺寸信息：
* 原始设备（即创建图片的设备）的颜色格式。
* 原始设备的分辨率。
* 原始设备的调色板
* 一个位数组，由红、绿、蓝（RGB）三个值代表一个像素。
* 一个数组压缩标志，用于表明数据的压缩方案（如果需要的话）。
以上这些信息保存在BITMAPINFO结构中，该结构由BITMAPINFOHEADER结构和两个或更多个RGBQUAD结构所组成。BITMAPINFOHEADER结构所包含的成员表明了图像的尺寸、原始设备的颜色格式、以及数据压缩方案等信息。RGBQUAD结构标识了像素所用到的颜色数据。
DIB位图也有两种形式，即：底到上型DIB(bottom-up），和顶到下型DIB(top-down）。底到上型DIB的原点（origin）在图像的左下角，而顶到下型DIB的原点在图像的左上角。如果DIB的高度值（由BITMAPINFOHEADER结构中的biHeight成员标识）是一个正值，那么就表明这个DIB是一个底到上型DIB，如果高度值是一个负值，那么它就是一个顶到下型DIB。注意：顶到下型的DIB位图是不能被压缩的。
位图的颜色格式是通过颜色面板值（planes）和颜色位值（bitcount）计算得来的，颜色面板值永远是1，而颜色位值则可以是1、4、8、16、24、32其中的一个。如果它是1，则表示位图是一张单色位图（译者注：通常是黑白位图，只有黑和白两种颜色，当然它也可以是任意两种指定的颜色），如果它是4，则表示这是一张VGA位图，如果它是8、16、24、或是32，则表示该位图是其他设备所产生的位图。如果应用程序想获取当前显示设备（或打印机）的颜色位值（或称位深度），可调用API函数GetDeviceCaps（），并将第二个参数设为BITSPIXEL即可。
显示设备的分辨率是以每米多少个像素来表明的，应用程序可以通过以下三个步骤来获取显示设备或打印机的水平分辨率：
1. 调用GetDeviceCaps（）函数，指定第二个参数为HORZRES。
2. 再次调用GetDeviceCaps()函数，指定第二个参数为HORZSIZE。
3. 用第一个返回值除以第二个返回值。即：GetDeviceCaps(hDC,HORZRES)/GetDeviceCaps(hDC,HORZSIZE);
应用程序也可以使用相同的三个步骤来获取设备的垂直分辨率，不同之处只是要将HORZRES替换为VERTRES，把HORZSIZE替换为VERTSIZE，即可。
调色板是被保存在一个RGBQUAD结构的数组中，该结构指出了每一种颜色的红、绿、蓝的分量值。位数组中的每一个索引都对应于一个调色板项（即一个RGBQUAD结构），应用程序将根据这种对应关系，将像素索引值转换为像素RGB值（真实的像素颜色）。应用程序也可以通过调用GetDeviceCaps（）函数来获取当前显示设备的调色板尺寸（将该函数的第二个参数设为NUMCOLORS即可）。
Win32 API支持位数据的压缩（只对8位和4位的底到上型DIB位图）。压缩方法是采用运行长度编码方案（RLE），RLE使用两个字节来描述一个句法，第一个字节表示重复像素的个数，第二个字节表示重复像素的索引值。有关压缩位图的详细信息请参见对BITMAPINFOHEADER结构的解释。
应用程序可以从一个DDB位图创建出一个DIB位图，步骤是，先初始化一些必要的结构，然后再调用GetDIBits（）函数。不过，有些显示设备有可能不支持这个函数，你可以通过调用GetDeviceCaps（）函数来确定一下（GetDeviceCaps（）函数在调用时指定RC_DI_BITMAP作为RASTERCAPS的标志）。
应用程序可以用DIB去设置显示设备上的像素（译者注：也就是显示DIB），方法是调用SetDIBitsToDevice（）函数或调用StretchDIBits（）函数。同样，有些显示设备也有可能不支持以上这两个函数，这时你可以指定RC_DIBTODEV作为RASTERCAPS标志，然后调用GetDeviceCaps（）函数来判断该设备是否支持SetDIBitsToDevice（）函数。也可以指定RC_STRETCHDIB作为RASTERCAPS标志来调用GetDeviceCaps（）函数，来判断该设备是否支持StretchDIBits（）函数。
如果应用程序只是要简单的显示一个已经存在的DIB位图，那么它只要调用SetDIBitsToDevice（）函数就可以。比如一个电子表格软件，它可以打开一个图表文件，在窗口中简单的调用SetDIBitsToDevice（）函数，将图形显示在窗口中。但如果应用程序要重复的绘制位图的话，则应该使用BitBlt（）函数，因为BitBlt（）函数的执行速度要比SetDIBitsToDevice(）函数快很多。
设备相关位图 (Device-Dependent Bitmaps) 
设备相关位图（DDB）之所以现在还被系统支持，只是为了兼容旧的Windows 3.0软件，如果程序员现在要开发一个与位图有关的程序，则应该尽量使用或生成DIB格式的位图。
DDB位图是被一个单个结构BITMAP所描述，这个结构的成员标明了该位图的宽度、高度、设备的颜色格式等信息。
DDB位图也有两种类型，即：可废弃的（discardable)DDB和不可废弃的（nondiscardable)DDB。可废弃的DDB位图就是一种当系统内存缺乏，并且该位图也没有被选入设备描述表（DC）的时候，系统就会把该DDB位图从内存中清除（即废弃）。不可废弃的DDB则是无论系统内存多少都不会被系统清除的DDB。API函数CreateDiscardableBitmap（）函数可用于创建可废弃位图。而函数CreateBitmap（）、CreateCompatibleBitmap（）、和CreateBitmapIndirect（）可用于创建不可废弃的位图。
应用程序可以通过一个DIB位图而创建一个DDB位图，只要先初始化一些必要的结构，然后再调用CreateDIBitmap（）函数就可以。如果在调用该函数时指定了CBM_INIT标志，那么这一次调用就等价于先调用CreateCompatibleBitmap（）创建当前设备格式的DDB位图，然后又调用SetDIBits（）函数转换DIB格式到DDB格式。（可能有些设备并不支持SetDIBits(）函数，你可以指定RC_DI_BITMAP作为RASTERCAPS的标志，然后调用GetDeviceCaps（）函数来判断一下）。对应数据结构1：BMP文件组成 
BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
2：BMP文件头（14字节）
BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。
其结构定义如下： 
typedef struct tagBITMAPFILEHEADER
{
WORD bfType; // 位图文件的类型，必须为BM(1-2字节）
DWORD bfSize; // 位图文件的大小，以字节为单位（3-6字节）
WORD bfReserved1; // 位图文件保留字，必须为0(7-8字节）
WORD bfReserved2; // 位图文件保留字，必须为0(9-10字节）
DWORD bfOffBits; // 位图数据的起始位置，以相对于位图（11-14字节）
// 文件头的偏移量表示，以字节为单位
} BITMAPFILEHEADER;
3：位图信息头（40字节）
BMP位图信息头数据用于说明位图的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本结构所占用字节数（15-18字节）
LONG biWidth; // 位图的宽度，以像素为单位（19-22字节）
LONG biHeight; // 位图的高度，以像素为单位（23-26字节）
WORD biPlanes; // 目标设备的级别，必须为1(27-28字节）
WORD biBitCount;// 每个像素所需的位数，必须是1（双色），（29-30字节）
// 4(16色），8(256色）或24（真彩色）之一
DWORD biCompression; // 位图压缩类型，必须是 0（不压缩），（31-34字节）
// 1(BI_RLE8压缩类型）或2(BI_RLE4压缩类型）之一
DWORD biSizeImage; // 位图的大小，以字节为单位（35-38字节）
LONG biXPelsPerMeter; // 位图水平分辨率，每米像素数（39-42字节）
LONG biYPelsPerMeter; // 位图垂直分辨率，每米像素数（43-46字节)
DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数（47-50字节）
DWORD biClrImportant;// 位图显示过程中重要的颜色数（51-54字节）
} BITMAPINFOHEADER;
4：颜色表 
颜色表用于说明位图中的颜色，它有若干个表项，每一个表项是一个RGBQUAD类型的结构，定义一种颜色。RGBQUAD结构的定义如下： 
typedef struct tagRGBQUAD {
BYTE rgbBlue;// 蓝色的亮度（值范围为0-255)
BYTE rgbGreen; // 绿色的亮度（值范围为0-255)
BYTE rgbRed; // 红色的亮度（值范围为0-255)
BYTE rgbReserved;// 保留，必须为0
} RGBQUAD;
颜色表中RGBQUAD结构数据的个数有biBitCount来确定：
当biBitCount=1,4,8时，分别有2,16,256个表项；
当biBitCount=24时，没有颜色表项。
位图信息头和颜色表组成位图信息，BITMAPINFO结构定义如下：
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; // 位图信息头
RGBQUAD bmiColors[1]; // 颜色表
} BITMAPINFO;
5：位图数据 
位图数据记录了位图的每一个像素值，记录顺序是在扫描行内是从左到右，扫描行之间是从下到上。位图的一个像素值所占的字节数： 
当biBitCount=1时，8个像素占1个字节；
当biBitCount=4时，2个像素占1个字节；
当biBitCount=8时，1个像素占1个字节；
当biBitCount=24时，1个像素占3个字节；
Windows规定一个扫描行所占的字节数必须是
4的倍数（即以long为单位），不足的以0填充，
biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8) * bi.biHeight; 
具体数据举例：
如某BMP文件开头：
424D 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 E007 1F00 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....读取方法/*
功能：在图片的第50行画一条黑线
为简化代码，只支持24位色的图片
codeblocks下正确运行。VC下需要将二维数组img改为malloc动态分配。
*/
#include <stdio.h>
#include <windows.h>
typedef struct{
BYTE b;
BYTE g;
BYTE r;
}RGB;
int main( void )
{
BITMAPFILEHEADER fileHeader;
BITMAPINFOHEADER infoHeader;
FILE* pfin =fopen("原始图像.bmp","rb");
FILE* pfout = fopen( "修改后的图像.bmp" , "wb");
//Read the Bitmap file header;
fread(&fileHeader,sizeof(BITMAPFILEHEADER),1,pfin);
//Read the Bitmap info header;
fread(&infoHeader,sizeof(BITMAPINFOHEADER),1,pfin);
//为简化代码，只处理24位彩色
if( infoHeader.biBitCount == 24 )
{
int size = infoHeader.biWidth*infoHeader.biHeight;
RGB img[infoHeader.biHeight][infoHeader.biWidth];
fread( img , sizeof(RGB) , size , pfin );
//把第50行染成黑色
int i = 0;
for( ; i < infoHeader.biWidth ; i++ )
{
img[50][i].b =img[50][i].g=img[50][i].r= 0;
}
//将修改后的图片保存到文件
fwrite( &fileHeader , sizeof(fileHeader) , 1 , pfout );
fwrite( &infoHeader , sizeof(infoHeader) , 1 , pfout );
fwrite( img , sizeof(RGB) , size , pfout );
}
}
文件部分
图像文件头1）1-2：(这里的数字代表的是"字",即两个字节，下同）图像文件头。0x4d42=’BM’，表示是Windows支持的BMP格式。(注意：查ascii表B 0x42,M0x4d,bfType 为两个字节，B为low字节，M为high字节所以bfType=0x4D42，而不是0x424D，但注意)
2）3-6：整个文件大小。4690 0000，为00009046h=36934。
3）7-8：保留，必须设置为0。
4）9-10：保留，必须设置为0。
5）11-14：从文件开始到位图数据之间的偏移量(14+40+4*（2^biBitCount）)。4600 0000，为00000046h=70，上面的文件头就是35字=70字节。位图信息头6）15-18：位图图信息头长度。
7) 19-22：位图宽度，以像素为单位。8000 0000，为00000080h=128。
8）23-26：位图高度，以像素为单位。9000 0000，为00000090h=144。
9）27-28：位图的位面数，该值总是1。0100，为0001h=1。
10）29-30：每个像素的位数。有1（单色），4（16色），8（256色），16（64K色，高彩色），24（16M色，真彩色），32（4096M色，增强型真彩色）。1000为0010h=16。
11）31-34：压缩说明：有0（不压缩），1（RLE 8，8位RLE压缩），2（RLE 4，4位RLE压缩，3（Bitfields，位域存放）。RLE简单地说是采用像素数+像素值的方式进行压缩。T408采用的是位域存放方式，用两个字节表示一个像素，位域分配为r5b6g5。图中0300 0000为00000003h=3。
12）35-38：用字节数表示的位图数据的大小，该数必须是4的倍数，数值上等于（≥位图宽度的最小的4的倍数）×位图高度×每个像素位数。0090 0000为00009000h=80×90×2h=36864。
13）39-42：用象素/米表示的水平分辨率。A00F 0000为0000 0FA0h=4000。
14）43-46：用象素/米表示的垂直分辨率。A00F 0000为0000 0FA0h=4000。
15）47-50：位图使用的颜色索引数。设为0的话，则说明使用所有调色板项。
16）51-54：对图象显示有重要影响的颜色索引的数目。如果是0，表示都重要。彩色板17）（55+0）到（50-1+2^biBitCount）：彩色板规范。对于调色板中的每个表项，用下述方法来描述RGB的值：
1字节用于蓝色分量 
1字节用于绿色分量 
1字节用于红色分量 
1字节用于填充符（设置为0) 
对于24-位真彩色图像就不使用彩色板，因为位图中的RGB值就代表了每个象素的颜色。
如，彩色板为00F8 0000 E007 0000 1F00 0000 0000 0000，其中：
00F8为F800h = 1111 1000 0000 0000（二进制），是蓝色分量的掩码。
E007 为 07E0h = 0000 0111 1110 0000（二进制），是绿色分量的掩码。
1F00为001Fh = 0000 0000 0001 [1]1111（二进制），是红色分量的掩码。
0000 总设置为0。
将掩码跟像素值进行“与”运算再进行移位操作就可以得到各色分量值。看看掩码，就可以明白事实上在每个像素值的两个字节16位中，按从高到低取5、6、5位分别就是r、g、b分量值。取出分量值后把r、g、b值分别乘以8、4、8就可以补齐第个分量为一个字节，再把这三个字节按rgb组合，放入存储器（同样要反序），就可以转换为24位标准BMP格式了。图像数据阵列18)55（无调色板）-bfSize：每两个字节表示一个像素。阵列中的第一个字节表示位图左下角的象素，而最后一个字节表示位图右上角的象素。存储算法BMP文件通常是不压缩的，所以它们通常比同一幅图像的压缩图像文件格式要大很多。例如，一个800×600的24位几乎占据1.4MB空间。因此它们通常不适合在因特网或者其它低速或者有容量限制的媒介上进行传输。根据颜色深度的不同，图像上的一个像素可以用一个或者多个字节表示，它由n/8所确定（n是位深度，1字节包含8个数据位）。图片浏览器等基于字节的ASCII值计算像素的颜色，然后从调色板中读出相应的值。更为详细的信息请参阅下面关于位图文件的部分。n位2n种颜色的位图近似字节数可以用下面的公式计算：BMP文件大小约等于 54+4*2的n次方+（w*h*n)/8，其中高度和宽度都是像素数。需要注意的是上面公式中的54是位图文件的文件头，是彩色调色板的大小。另外需要注意的是这是一个近似值，对于n位的位图图像来说，尽管可能有最多2n中颜色，一个特定的图像可能并不会使用这些所有的颜色。由于彩色调色板仅仅定义了图像所用的颜色，所以实际的彩色调色板将小于。如果想知道这些值是如何得到的，请参考下面文件格式的部分。由于存储算法本身决定的因素，根据几个图像参数的不同计算出的大小与实际的文件大小将会有一些细小的差别。
数据类型
Oracle产品 EPC Bitmap 中数据类型 EPC bitmap的缩写。
Oracle提出了一种EPC bitmap的数据类型对基于RFID产品项级别跟踪应用产生的大量的数据进行有效处理，。
EPC bitmap数据类型定义一个EPC集合，集合共享EPC的一些特征（例如header,manager number,and object class）。支持这个数据类型的关键是使用RFID标识的物品项，在一个群组里可以基于共同属性（例如位置，截止日期，或制造商），在通常情况下可以被追踪。而EPC集合可以表示为一个EPC bitmap，bitmap可以被访问并可通过epc2bmp或bmp2epc进行数据类型的转换操作。
引入EPC bitmap（epc bmp）类型的好处：
(1）可以简单的标识一个RFID EPC集合，而不会丢失任何信息；
(2）对于同类的EPC操作可以简单的在bitmap上操作，简化了操作方式

简介
奉献一份“心”的关爱，成就无限“精彩生活”！BMP诚信借款是江西精彩生活投资发展有限公司秉承  太平洋BMP诚信贷款“以人为本”的理念，为了满足社会大众的“需要”与“需求”，赋予所有人一个实现自我价值的契机，让所有人都能演绎自己的精彩人生，与中信银行携手共同推出独具特色的太平洋BMP诚信借款，致力于为大众提供一个“诚信+共赢”的完美互助平台！
目前，B=Business，指企业，在这里指推行诚信的江西精彩生活投资发展有限公司；P=Person，指个人，终端，也即借款人；M=Media，是媒介，也即太平洋直购官方网诚信渠道商。太平洋BMP诚信借款以诚信为依托，在企业、诚信渠道商与个人之间搭建起一个资金流通和循环的渠道与平台，形成企业、个人与诚信渠道商三方利益互动，在满足大众“需求”、实现资金资源优化配置的同时，创造互利共赢的和谐局面！
与传统P2P借款区别
一方面，太平洋BMP诚信借款创新性地融入“M”这一第三方媒介，成功打破了传统P2P个人借款的单向性，将企业、个人与诚信渠道商相连通，从而全面整合资源，拓建了一个三方互动的完美共赢渠道，开创了一种全新的资金优化方式；另一方面，太平洋BMP诚信借款为所有会员伙伴提供了一个完美的互助平台。任何一名会员伙伴均可通过这一平台向该公司申请借款，来提前购买PV获得相应诚信渠道商资格，从而拥有一份属于自己的精彩事业；此外，该公司会将借款产生的利息折算成PV，并按一定规则将PV返利给借款会员，从而革新了传统借款的历史，减轻了借款会员的资金压力，为借款会员创造了新的利润来源点！
BMP诚信借款意义
太平洋BMP诚信借款平台通过资金的有益流通与循环，汇聚了庞大现金流，为经济发展插上了腾飞的翅膀；同时更汲取人与人之间真诚互助的力量，以诚信为纽带，在互利共赢中将诚信理念永续传播，让太平洋直购官方网事业成为生命的延续，为推动社会诚信建设注入了巨大动力！
BMP诚信借款流程
第一步：登录\注册太平洋直购网  太平洋BMP借款流程第二步：进入会员个人中心 　　
第三步：点击“渠道商申请” 
第四步：阅读渠道商协议 
第五步：填写申请信息并提交
第六步：担保人确认担保
第七步：申请成功
BMP诚信借款规则
1、对于向公司申请借款以完成相应诚信渠道商资格所需PV量购买的会员，根据会员一次性购买PV的数量的不同，公司给予的借款金额所占相应资格诚信保证金的比例也将不同。
（1）一次性购买2万PV（含）以上的诚信渠道商可以向公司申请先行首付50%及以上比例的保证金，并向公司申请借款支付余下的保证金。
例：某会员想获得特四级诚信渠道商资格（该资格诚信渠道商共须交纳诚信保证金为14万元人民币），可以先行交纳7万元人民币，另7万元人民币可向公司申请借款。
（2）一次性购买2万PV以下可以向公司申请先行首付4/7的保证金，并向公司申请借款支付余下的保证金。
例：某会员想获得合格诚信渠道商资格（该资格诚信渠道商共须交纳诚信保证金为7000元人民币），可以先行交纳4000元人民币，另3000元人民币可向公司申请借款。
2、对于所有通过向公司借款来提前获取合格至三级诚信渠道商资格的会员，都必须向未批发完成PV的省/市/县（区）级诚信渠道商进行相应资格PV量的购买，且需要提供担保人，该担保人必须由其所属市场中未批发完成PV的省/市/县（区）级诚信渠道商担任，但须经其本人同意，方可进行。
3、担保人诚信保证的方式为：连带责任保证。若借款会员在规定期内未按时归还本金及利息，公司有权在担保人的返利中直接扣除。此外，在规定期限内无法偿还借款的会员，可以提前半个月向公司申请延长借款期限；若担保人仍然愿意进行诚信保证时，公司将对该会员及担保人信誉再次进行审核，审核通过后方可延长。
例：会员A为向公司借款以提前获取合格诚信渠道商资格的借款会员，县级诚信渠道商B为担保人，如果A未能按时归还本金和利息，那么公司会从担保人B的返利款项中进直接扣除相应金额。
另外，在无法按时偿还借款的情况下，A也可以在到达还款截止日期前提前半个月向公司递交延长借款期限的申请，若此时B仍然愿意为A进行诚信担保，那么公司将会对A与B的诚信度再次进行审核，审核通过后则A可以延长借款期限。
4、通过借款成为诚信渠道商的会员同样享有15天冷静期（自会员交纳诚信保证金或通过借款完成诚信保证金的交纳起开始计算，含当日）的权利，若借款会员选择在15天内放弃诚信渠道商代理资格，借款申请则自公司收到该会员书面申请退单之日起撤回作废。
例：会员A于2010年9月10日向公司借款3000元，并于当日交纳全额诚信保证金成为合格诚信渠道商，那么A如果想要放弃合格诚信渠道商的资格，则可以在2010年9月24之前向公司提交退单的书面申请。若A于2010年9月13日提交申请，公司15日收到A的退单申请，那么A的借款申请则由2010年9月15日起撤回作废。
5、对于所有向公司申请借款以一次性购买50000（含）以上PV来获取三级及以上诚信渠道商资格的会员，其所申请的款项该公司将一律委托中信银行进行借款。
BMP诚信借款还款规则
1、凡是依据公司的“VIP消费积分返利计划”可以享受到借款会员消费返利的诚信渠道商，公司将从其返利中暂扣部分款项（暂扣部分以该会员借款本息金额为限），待借款会员在规定期限内将本金及利息还清后，公司将于当月返还该暂扣款。
2、借款会员需要在约定期限内归还本金及利息（利息率：1.5%/月），但借款会员在归还利息后，公司会按借款本金的0.7%集成PV，返利给该借款会员。
例：某县级诚信渠道商向公司借款10万元人民币，须缴纳利息1500元人民币/月。但如果该县级诚信渠道商在约定期限内归还本金及利息后，公司会按10万元人民币的0.7%集成PV（即100PV）返利给该县级诚信渠道商。
3、 还款方式
（1）、公司按月核算会员业绩及其借款本息，并于次月20日直接代扣利息后发放返利，于次月25日直接代扣借款本金的偿还金额后返还保证金；若在借款次月25日前借款本金全部还清，则按一个月计息。
例：借款会员A于2010年10月1日借款50万元成为市级诚信渠道商，（月息为1.5%），若A于2010年10月1日至20日之间完成了3万PV的批发，那么A可获得21万元诚信保证金的返还以及（44%-35%）*21万的返利，公司则会于2010年11月20日从（44%-35%）*21万中扣除（50万*1.5%）的利息；并于2010年11月25日直接将返还的21万诚信保证金作为A所借50万的偿还款进行扣除。
若A在借款次月25前已将借款本金全部还清，那么从A 2010年10月1日借款至2010年11月25日还款这一期限内，公司只收取一个月的利息。
（2）、借款会员也可通过银行汇款、转账等方式偿还借款。
（3）、一次性购买10万以上PV来获取诚信渠道商资格的会员，可以在借款期内向公司申请“暂不偿还借款”。
注：若会员向公司借款3000元成为合格诚信渠道商（1000PV，20%），由于每位诚信渠道商都需留下1000PV作为个人自然消费，那么该会员自身的1000PV不可批发，公司将从该会员所获返利中直接扣除相应款项以偿还借款。
担保款扣发规则
会员借款后，公司会暂时扣除借款会员所属市场中最近，且是比借款会员本人高一资格的诚信渠道商相应的诚信担保款。
公式一：（高资格诚信渠道商返利比例 — 借款会员返利比例）* 借款金额 = 诚信担保款
例：会员A向公司借款15000元成为五级诚信渠道商（5000PV，26%），A与未批发完成PV的四级诚信渠道商B（1万PV，32%）属于同一市场，B是A所属市场中最近，且是比B高一资格的诚信渠道商。那么，按照公式一可知，公司需要暂扣B的诚信担保款为（32%-26%）*1.5万=900元。
特别注意：若借款会员为初次成为合格诚信渠道商的会员，则需要暂时扣除该会员所属市场中最近可享受零售返利的诚信渠道商及高一资格的诚信渠道商的相应诚信担保款；若最近可享受零售返利的诚信渠道商即比借款会员高一资格，则诚信担保款只暂扣一位。
公式二：（最近享受消费返利的诚信渠道商的返利比例 * 借款金额 = 诚信担保款）
例：会员C向公司借款3000元首次成为合格诚信渠道商，且C与合格诚信渠道商 B、五级诚信渠道商A属于同一市场，B的返利比例为20%，A的返利比例为26%，若C向B购买合格诚信渠道商资格所需的1000PV，而B自身的1000PV需要留作个人自然消费无法批发，则B转而向高一资格的五级诚信渠道商A进行这1000PV的购买，那么B购买1000PV后，A可从中得获1000PV*（26%-20%）的返利；当B将购买的1000PV批发给C时，则B可从中获得（1000PV*20%）的返利，即按照公式二可知，诚信担保款需暂扣B的3000元*20%=600元和A的3000*（26%-20%）=180元； 
若A（返利比例26%）即为最近可享受零售返利的诚信渠道商，且比借款会员C（返利比例20%）高一资格，那么诚信担保款只需暂扣A的3000元*26%=780元。

简介
类别：装甲战斗车辆 步兵战斗车 
型号：BM П -1 型  BMP-1步兵战车发展过程：
该车是苏联于1970年在BMП步兵战车的基础上改进而成的，并正式列入苏军装备。与 BMП比较，该车的主要改进是车首加长20厘米，以提高浮渡能力并使车辆重心居中，有利于整车的重量平衡；开大了车辆两侧的射孔，以扩大射界；车长门底座加高，以扩大视野；重新设计了排气口护罩，以防止浮渡时水进入排气道内；将凸起的载员舱盖改低，以减小火炮俯角死区。印度引进后，主要装备机械化步兵，用于协同坦克作战。
性能特点
①防护力强。该车车体采用钢板焊接结构，能防枪弹和炮弹破片，正面弧形区可防 12.7 毫米穿甲弹和穿甲燃烧弹，前上装甲为带加强筋的铝装甲。
②观瞄设施完备。配有3个THⅡO-170型昼间潜望镜，中间1个可换成THⅡO- 350B型高潜望镜。夜间驾驶时间 1 个换成 TBHO-2 红外夜间驾驶仪。全车共有 19 个 THⅡ O-170型昼间潜望镜，均有电加热除霜功能。车长在驾驶员后面，其指挥塔能旋转 360 °。指挥塔前有 3 个潜望镜，中间 1 个可换成 TKH-3B 双目昼夜观察镜，与车长顶窗盖上的红外探照灯配合，用于夜间观察。炮手前面有 1 个1ⅡH22M1 潜望式单目昼夜瞄准镜，昼间的放大倍率为 6，视场为 15 ° ；夜间部分采用微光夜视仪，放大倍率为 6.7，视场 6 °，夜间最大视距为 400 ～ 900 毫米。在炮塔右侧有白光或红外探照灯。
③火力强大。主要武器为 1 门 73 毫米的 2A28 低压滑瞠炮，在炮塔后下方有自动装弹机构，由在战斗舱周围的 40 发弹盘供弹。可自动装弹或人工装填。配用定装式尾翼稳定破甲弹，初速 400米/秒。采用 CⅡT-9 重型反坦克火箭筒所使用的火箭增程弹时最大飞行速度可达 665米/秒，直射距离800米，最大射程1300米，射速 8 发 /分。主炮的俯仰与炮塔驱动均采用电操纵，必要时也可手动操作。在主炮右侧有 1 挺 7.62 毫米的ⅡKT 并列机枪,弹药基数 2000 发。炮塔内有通风装置，用于排除炮塔内的火药气体。在主炮上方有 AT-3 反坦克导弹单轨发射架，配有导弹 4 枚，在车体和炮塔内各存放 2 枚。导弹通过炮塔顶部前面的窗口装填，装填时间约为 50秒，射程500～3000米，只能昼间发射，操纵装置位于炮手座位下面。
④协同步兵作战能力较强。载员舱可容纳全副武装士兵 8 人，每侧 4 人，背靠背乘坐，人员通过车后双开门出入。车体两侧各有 4 个射孔和电热式潜望镜。两侧前方的射孔通常用于 7.62 毫米 PⅡ K机枪射击，其余用于 7.62 毫米的AK－74突击步枪射击。每挺PⅡK机枪的弹药基数为 1200 发，车内还有步兵随身携带的1具PⅡ-7 单兵反坦克火箭筒，火箭弹 5 发。在每个装备该车的摩步排中还有 1 辆车携带 2 具萨姆-7 单兵防空导弹发射装置。
⑤火炮俯仰角受限，导弹性能落后。
主要改型
BMП-1K 指挥车。配有 P-123 和 P-126 电台以及天线等各种通信设备。为便于使用旋转地图桌和其他工作台，重新布置了载员舱，并取消了两侧的射孔和观察镜等。
BMП -1K Ⅲ首长 - 司令部车。供营以上指挥员使用，配有大的天线杆和鞭状天线，有 4 部电台，P-107 和 P-311 各 1 部，P-123 两部，还有 1 台发电机。
BM П -P 侦察车。车体与 BMП-1 相似，但采用双人炮塔，主要武器仍为 1 门 73 毫米的低压滑膛炮。原顶部的 4 个舱盖只保留 2 个，均位于后部。配有战场监视雷达和抛物面天线，后者位于炮塔顶部后方。在炮塔两侧各有 1 组烟幕弹发射器。
BMП -COH 炮兵侦察车。装备自行火炮营和团使用。采用双人炮塔，主要武器为 1 挺 7.62 毫米ⅡKT 机枪。配有战场监视雷达，天线位于炮塔顶部后方。观瞄仪器有微光瞄准镜和激光测距仪等。
基本数据
乘员 3+8 人 
战斗全重 13300 千克 
车长 6.740 米 
车宽 2.940 米 
  车高（至探照灯） 2.150 米 
最大速度 公路65千米/小时，水上7千米/小时 
爬坡度 30度 
侧倾坡度 30度 
攀垂直墙高 0.7 米 
越壕宽 2.5 米 
发动机功率 221 千瓦 
主要武器 73毫米低压滑膛炮 
并列武器 7.62 毫米机枪1挺 
反坦克制导武器 反坦克导弹单轨发射架 /1 个 
弹药基数 炮弹40发，机枪弹2000发， 
导弹型号/数量 AT－3反坦克导弹 /4 枚 
主炮俯仰范围 -4度～ +33度 
装甲厚度/水平倾角：
车体前上 6 毫米 /10度 
车体前下 19 毫米 /34度 
车体侧上 16 毫米 /76度 
车体侧下 18 毫米 /90度 
车体后上 16 毫米 /71度 
车体后下 16 毫米 /71度 
  车臣战争中的BMP步兵战车车体顶部 6 毫米 
车体底部 7 毫米 
炮塔前部 23 毫米 /48度 
炮塔侧部 19 毫米 /54度 
炮塔后部 13 毫米 /60度 
炮塔顶部 6 毫米 
炮塔防盾 26 ～ 33 毫米
作战运用
BM П -1 步兵战斗车曾参加了阿富汗战争，主要用于协同 T-64 坦克作战，在清剿游击队据点作战中发挥了一定作用，但由于阿富汗境内多山，机动受限，其作战效能未能充分发挥，武器装备相对落后的阿游击队也曾利用地形成功地伏击了 BM П -1 车队。在查普查勒山口战中，游击队用炸药炸开了两侧峭壁上的岩石,受道路限制而排成一线的 BM П -1 战车有数十辆被巨石击中，车载 73 毫米主炮受仰角限制，无法发扬火力打击山顶上游击队员，损失惨重。
识别特征
①炮塔小而低矮，火炮前端不超过车首，上方有一具萨格尔反坦克导弹发射导轨。
②车体前方装甲呈锐角，下沿形状几乎是履带的自然延伸，车尾部几乎无斜角，双开式舱门向外凸明显。
③采用 6 对大直径负重轮。
现在的BMP系列步兵战车已经发展到了BMP4型，不过最经典的还是1型，出口最多，也是最有名的一种。

BMP085介绍
  BMP085是一款高精度、超低能耗的压力传感器，可以应用在移动设备中。它的性能卓越，绝对精度最低可以达到0.03hPa，并且耗电极低，只有3&micro;A。BMP085采用强大的8-pin陶瓷无引线芯片承载（LCC）超薄封装，可以通过I&sup2;C总线直接与各种微处理器相连。
主要特点：
（1）压力范围：300 ... 1100hPa（海拔9000米...-500米）
(2）电源电压：1.8V ... 3.6V（VDDA）
1.62V ... 3.6V（VDDD）
(3)LCC8封装：无铅陶瓷载体封装（LCC）
(4）尺 寸：5.0mmx5.0*1.2mm
(5）低功耗：5μA 在标准模式 
(6）高精度：低功耗模式下，分辨率为0.06hPa（0.5米）
高线性模式下，分辨率为0.03hPa（0.25米）
(7）反应时间：7.5ms
(8）待机电流：0.1&micro;A
(9）无需外部时钟电路
(10）含温度输出，IC接口，温度补偿，无铅，符合RoHS规范，MSL 1
该传感器的外观及引脚如下图所示
  BMP085引脚BMP085各引脚的含义如下表所示
  引脚含义
BMP085 读取数据方式
  读取控制命令读取16位A/D转换器的结果
发送控制命令方式
  发送控制命令从BMP085 读取数据的步骤如下：
1）发送模块地址+W（表示写操作），如（c） 中的0xEE。
2）送寄存器地址（register address），如（c） 中的第一个0xF6。
3）重新开始IIC 传输（Restart）。
4）发送模块地址+R（表示要进行读操作），如c 中的0xEF。
5）读取测量值的高8 位（MSB）。
6）读取测量值的低8 位（LSB）。
向BMP085 发送命令的步骤如下
1）发送模块地址+W（表示写操作），如d中的0xEE。
2）发送寄存器地址（register address），如d 中的第一个0xF4。
3）发送寄存器的值（control register data），如d 中的第二个0xF4。寄
存器的值代表BMP085 要进行的测量方式。不同的值分别代表，测量
温度；低精度压力测量；中精度压力测量；高精度压力测量。
BMP085 的控制程序编写思路如图所示
  控制编程思路举例来说，向 BMP085 写寄存器地址0xF4 代表要BMP085 进行测量，具体
进行什么测量（温度、高精度压力、中精度压力还是低精度压力）要由发向寄存
器的值（control register data）决定，在d 中control register 的值是0xF4。对
照e可以看出，0xF4 代表要进行高精度的压力测量，需要测量时间25.5ms。
MCU 与BMP085 之间采用IIC 总线进行通信，其原理图如图所示
  通信电路
典型应用：
1.GPS精确导航（航位推算，上下桥检测等）
2.室内室外导航
3.休闲、体育和医疗健康等监测
4.天气预报
5.垂直速度指示（上升/下沉速度）
6.风扇功率控制