为什么用StretchBlt缩放后,再用GetBitmapBits就不行了?
为什么用StretchBlt缩放后,再用GetBitmapBits取出来的数据就不对了?
我gdi很差,还请高手指点!(最好写几行代码!不要用getpixel,要用GetBitmapBits)
下面代码要对hbmLoaded缩放为ArrayHeight*ArrayWidth后再取出数据存到pBuf中
HDC hdc,SrcDC,DstDC;
hdc=GetDC(0);
SrcDC=CreateCompatibleDC(hdc);
DstDC=CreateCompatibleDC(hdc);
HBITMAP hbm1; //拉伸后的位图句柄
hbm1=CreateCompatibleBitmap(DstDC,ArrayWidth,ArrayHeight);
SelectObject(SrcDC,hbmLoaded);
SelectObject(DstDC,hbm1); //装入DC
StretchBlt(DstDC,0,0,ArrayWidth,ArrayHeight,SrcDC,0,0,ImageWidth,ImageHeight,SRCCOPY);
GetBitmapBits(hbm1, BufSize,(LPSTR)pBuf);//取出的数据不对,一堆不知什么东西
DeleteObject(hbm1);
DeleteObject(hbmLoaded);
DeleteDC(DstDC);
DeleteDC(SrcDC);
ReleaseDC(0,hdc);