关于编写DIB类的问题,请高手指点。顶者有分。
现在我正在学习用VC编写DIB类,昨在在书上看到一个类,我就把它的源程序输入进去了,可以正常显示各种BMP图像,显示图像的步骤见下。
用 LoadBmp(LPCSTR filename);把一个bmp文件装入DIB类。
装入后,在DIB类中:
BITMAPINFO *m_pBMI;
BYTE *m_pDIBData;两个变量分别指向DIB文件的BITMAPINFO结构和图像的数据信息。然后调用: pDC->SetStretchBltMode(COLORONCOLOR);
StretchDIBits(pDC->GetSafeHdc(),nLeft,nTop,nWidth,nHeight,0,0,GetDIBWidth(),GetDIBHeight(),m_pDIBData,m_pBMI,DIB_RGB_COLORS,SRCCOPY);
就可以显示出来了。
但现在我有个问题就是:显示这个图像就可以了,为什么我的那个DIB类中还有什么
FromHandle()、CreateDIB()、G/SetDIBBits()、SaveBMP()、GetDibSection()等等很多函数根本没有用到。我还发现其中有CreateDIBSection等函数的调用。但我不知道它些都有什么用?
我猜测它们是为了对这个图像做一些处理用的。但我很奇怪,处理图像为什么还要这么多,为什么不直接对m_pDIBData所指的数据区直接处理变换就可了,为何还要这么多函数?请指一点一下思路。就是那些函数做什么?这个数字图像处理DIB类的具体思路?
多谢!