关于DDB与DIB的问题???
DIB与DDB的区别大家都知道,前者设备无关,优势在于能与所有显示设备兼容,用于存储,后者设备相关,优势在于显示速度快,在显示时一般都将DIB转变为DDB,MFC只对DDB进行了封装。但位图文件的结构都是一定的(包括位图文件头、位图信息头、颜色表和数据区),怎样区分一个位图是为DIB还是DDB?
CBitmap::LoadBitmap()读入的位图是DIB还是DDB?
另外这个语句:LPBITMAPINFOHEADER lpbi = (LPBITMAPINFOHEADER)hDIB;
对否?能在句柄上用强制转换吗?
如果这一句的对的那为什么下面这样不行:
CBitmap bitmap;
bitmap.LoadBitmap (IDB_BITMAP1);
HANDLE hDIB = bitmap.GetSafeHandle ();
LPBITMAPINFO lpbi = (LPBITMAPINFO)hDIB;
问题点数:0、回复次数:2Top
1 楼clancy(不见雁阵)回复于 2003-12-01 17:43:31 得分 0
windows下的bmp文件都是DIB文件,没有DDB文件。
CBitmap::LoadBitmap()读入的位图两者都可以。
LPBITMAPINFOHEADER lpbi = (LPBITMAPINFOHEADER)hDIB是错误的,不能在句柄上用强制转换,下面的当然也不行。Top
2 楼lovehs()回复于 2003-12-01 17:53:26 得分 0
LPBITMAPINFOHEADER lpbi = (LPBITMAPINFOHEADER)hDIB这样不行的话我如何从BMP句柄得到文件头信息呢?上面这条语句我也觉得不行,但我从网上看到好多DIB转DDB的程序中都有这一条语句。Top




