我将一个bmp文件读入了。得到了它的信息头指针,数据指针等等。也可以显示出来了。
但现在我想把它生成一个CBitmap对象。我用
CBitmap ImagBmp;HBITMAP hBitmap = CreateDIBitmap(pDC->m_hDC,(LPBITMAPINFOHEADER) m_lpBmpInfoHeader,(LONG)CBM_INIT,(LPSTR)m_lpBmpInfoHeader+sizeof(BITMAPINFOHEADER)+m_numColors*sizeof(RGBQUAD),(LPBITMAPINFO)m_lpBmpInfoHeader,DIB_RGB_COLORS);LPBITMAP lpBitmap = (LPBITMAP)(hBitmap);这么得不到指针啊?是hBitmap没生成么?因为我想用ImagBmp.CreateBitmapIndirect(lpBitmap);来生成CBitmap对象的。
或者谁能告诉我用其他方法将bmp生成CBitmap.
回帖或发邮件给我谢谢。我的email:[email protected]
但现在我想把它生成一个CBitmap对象。我用
CBitmap ImagBmp;HBITMAP hBitmap = CreateDIBitmap(pDC->m_hDC,(LPBITMAPINFOHEADER) m_lpBmpInfoHeader,(LONG)CBM_INIT,(LPSTR)m_lpBmpInfoHeader+sizeof(BITMAPINFOHEADER)+m_numColors*sizeof(RGBQUAD),(LPBITMAPINFO)m_lpBmpInfoHeader,DIB_RGB_COLORS);LPBITMAP lpBitmap = (LPBITMAP)(hBitmap);这么得不到指针啊?是hBitmap没生成么?因为我想用ImagBmp.CreateBitmapIndirect(lpBitmap);来生成CBitmap对象的。
或者谁能告诉我用其他方法将bmp生成CBitmap.
回帖或发邮件给我谢谢。我的email:[email protected]
解决方案 »
- 关于udp绑定操作对winpcap截包造成的影响的问题?
- 对内存释放问题,坐等...
- 大家来讨论下位图加密 VC 实现
- 怎么用VS2005配置wince 驱动的开发环境
- 请教关于子窗口的问题?
- 难道WIN31真得没提供解决这种问题的办法吗?
- 初学者和WINDOWS程序设计.请高人指点。救救小弟吧
- 高分求屏幕取词代码
- 怎么最简单的程序编译出来也有20K?汇编写可没几K嘛。
- --------(绝)------------------AAA----------------------------(密)-----------
- 请问VC++中怎么样调用微软定义的发邮件的控件啊?
- 我是一个VC初学者,请问有哪些好的chm教程?谢谢!
By Chris Maunder A class that makes using DIBSections as simple as using a CBitmap http://www.codeproject.com/bitmap/dibsection.asp
By DanG Provides built-in graying, rotating, shearing, resizing, blurring, sharpening, flipping, negating and color replacement to CBitmap as well as support for user-defined processing plugins
http://www.codeproject.com/useritems/ExtendedBitmap2.asp
HBITMAP hBitmap = CreateDIBitmap(pDC->m_hDC,(LPBITMAPINFOHEADER)m_lpBmpInfoHeader,(LONG)CBM_INIT,
(LPSTR)m_lpBmpInfoHeader+sizeof(BITMAPINFOHEADER)+m_numColors*sizeof(RGBQUAD),(LPBITMAPINFO)m_lpBmpInfoHeader,
DIB_RGB_COLORS);
ImagBmp.Attach(hBitmap);CDC ImgDC;
ImgDC.CreateCompatibleDC(pDC);
CBitmap *pOldImagBmp = ImgDC.SelectObject(&ImagBmp); pDC->SetStretchBltMode(COLORONCOLOR);
TransparentBlt(pDC->m_hDC, m_DstBimapLtPt.x, m_DstBimapLtPt.y, DstBmpWidth, -DstBmpHeight, ImgDC.m_hDC,
0, 0, bmpWidth, bmpHeight, RGB(255,255,255));to zfive5(醉马不肖)
我用了Attach();但是为什么图形没有显示出来啊?我的代码有问题么?
StretchDIBits( pDC->m_hDC,
m_DstBimapLtPt.x, m_DstBimapLtPt.y, DstBmpWidth, -DstBmpHeight,
0, 0, bmpWidth, bmpHeight,(void*)m_lpImageData, m_lpBmpInfo,DIB_RGB_COLORS, SRCCOPY);
必须把-DstBmpHeight设成负的,否则也是倒着的图形。但是TransparentBlt()函数好像不支持
长度写成负的啊!请问各位大侠,该怎么办啊?