CBitmap::GetBitmapBits和IMediaDet::GetBitmapBits有什么区别?
用IMediaDet::GetBitmapBits获得的位图数据能像CBitmap类一样处理吗?
用IMediaDet::GetBitmapBits获得的位图数据能像CBitmap类一样处理吗?
解决方案 »
- 怎么截取UDP数据包,并修改数据,再发送
- 那位高人有在多文档框架下,在一个非莫态对话框中连接的数据库数据,要求要有打印预览,打印属性设置,打印出来的数据是表格形式,的实例,谢谢!!
- msdn2005使用疑惑
- 请问怎么当鼠标点击任何区域的的位置?帮忙看下我的实现有错没。
- 动态库的神奇的问题
- 怎么将图象输出到多块显卡,而且每块显卡都显示不同的画面,就像在一台机器上的网络游戏
- 如何解决每次更新的过程中数据的显示刷屏的问题?
- 有谁用过windows作业吗?看过windows核心编程的作业一章?
- 谁有清华大学的《Internet Explorer5程序设计》这本书
- char *转 bstr问题。。。
- 请教枚举窗口?谢谢。
- WTL,CCodePageCombo继承CComboBoxT<ATL::CWindow>类,需要响应下拉菜单CloseUp的消息
CComPtr<IMediaDet> pDet;
char *pBuffer;
pDet->GetBitmapBits(0, 0, pBuffer, width, height);
那如何在窗口显示存在pBuffer的位图?
我用以下代码有问题啊?
char *pData = pBuffer + sizeof(BITMAPINFOHEADER);
int i,j;
for (i=0; i<m_orgHeight; i++)
for(j=0; j<m_orgWidth; j++)
{
pDC->SetPixel(j,i,RGB(
pData[width*(height-i)+j],
pData[width*(height-i)+j],
pData[width*(height-i)+j]));
}
请帮忙看看?谢谢了!
#define PAL_ITEM_COUNT(b) ( ((b)==8)?256:( ((b)==4)?16:( (b)==1)?2:0) )
来计算调色板的个数int nItem=PAL_ITEM_COUNT(biBitCount);
当色深为8位的时候用一个字节保存一个象素点,同理16位=2byte,24=3byte,32=4byte;
这样应该明白怎么显示象素点了吧。但是当色深小于等于8的时候会使用调色板的颜色,所以这样设置点的颜色是不对的。可以使用API函数来打印图像。StretchDIBits其定义为:
int StretchDIBits(
HDC hdc, // handle to DC
int XDest, // x-coord of destination upper-left corner
int YDest, // y-coord of destination upper-left corner
int nDestWidth, // width of destination rectangle
int nDestHeight, // height of destination rectangle
int XSrc, // x-coord of source upper-left corner
int YSrc, // y-coord of source upper-left corner
int nSrcWidth, // width of source rectangle
int nSrcHeight, // height of source rectangle
CONST VOID *lpBits, // bitmap bits
CONST BITMAPINFO *lpBitsInfo, // bitmap data
UINT iUsage, // usage options
DWORD dwRop // raster operation code
);