设备相关位图
在Windows中有两种类型的位图:DDB位图(与设备相关位图)及DIB位图(与设备无关位图).
与设备相关位图(DDB)是一种内部位图格式,它由MFC库6.0版本CBitmap类定义,有一个与之关联的Windows数据结构.
DDB中
不包括颜色信息,显示时是以系统的调色板为基础进行各位的颜色映射.例如,如果当前的显示设备是256色模式,那么DDB必然也是256色的。在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板。由于DDB高度依赖输出设备,所以DDB只能存在于内存中,它要么在视频内存中,要么在系统内存中。它显示的图像依计算机显示系统的设置不同而不同,因此
一般不存储文件.
MFC6.0定义了
Cbitmap类和DDB结构
BITMAP 对DDB位图操作进行了封装.结构BITMAP定义了DDB位图的类型宽度高度颜色格式和像素位置,其在Windows中定义如下:
typedef struct tagBITMAP
{
int bmType; //位图类型,必须设置为0
int bmWidth; //位图宽度
int bmHeight; //位图高度
int bmWidthBytes; //位图中每一扫描行中的字节数
BYTE bmPlanes; //颜色层数
BYTE bmbitsPixel; //每一像素所占的位数
void FAR* bmbits; //存放像素值内存块的地址
}BITMAP;
在数字图像处理中,使用较多的DIB位图,即与设备无关位图,DDB位图使用较少 DDB的创建 BOOL CreateBitmap( int nWidth, int nHeight, UINT nPlanes, UINT nBitcount, const void* lpBits ); BOOL CreateCompatibleBitmap( CDC* pDC, int nWidth, int nHeight );
DIB设备无关位图文件,这是一种文件格式,是为了保证用某个应用程序创建的位图图形可以被其它应用程序装载或显示一样。 DIB的与设备无关性主要体现在以下两个方面:DIB的颜色模式与设备无关。例如,一个256色的DIB即可以在真彩色显示模式下使用,也可以在16色模式下使用。256色以下(包括256色)的DIB拥有自己的颜色表,像素的颜色独立于系统调色板。由于DIB不依赖于具体设备,因此可以用来永久性地保存图象。DIB一般是以*.BMP文件的形式保存在磁盘中的,有时也会保存在*.DIB文件中。运行在不同输出设备下的应用程序可以通过DIB来交换图象。 DIB可以存储在*.BMP或*.DIB文件中。
|
转载于:https://www.cnblogs.com/weiqubo/archive/2011/04/09/2010240.html