您的位置:首页 > 其它

drawdib对图像进行放大缩小不成功

2008-04-14 22:57 573 查看
最近在做个视频会议软件,想对捕捉到的图像进行缩小显示,但并不成功。搜了很久,网上都大多出处自同一篇文章,解决不了我的问题,请各位帮忙。

以下代码是希望以640X480的画幅捕捉,之后以320X240的方式来显示,然而并不成功。

代码如下:
在头文件中定义:
#define QCIF_WIDTH 640
#define QCIF_HEIGHT 480

#define IMAGE_WIDTH QCIF_WIDTH
#define IMAGE_HEIGHT QCIF_HEIGHT

在实现文件中有如下:

hdib=::DrawDibOpen();

//定义BitMap。
m_bmpinfo=new BITMAPINFO;
m_bmpinfo->bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
m_bmpinfo->bmiHeader.biWidth=IMAGE_WIDTH;
m_bmpinfo->bmiHeader.biHeight=IMAGE_HEIGHT;
m_bmpinfo->bmiHeader.biPlanes=1;
m_bmpinfo->bmiHeader.biBitCount=24;
m_bmpinfo->bmiHeader.biCompression=0;
m_bmpinfo->bmiHeader.biSizeImage=0;
m_bmpinfo->bmiHeader.biXPelsPerMeter=0;
m_bmpinfo->bmiHeader.biYPelsPerMeter=0;
m_bmpinfo->bmiHeader.biClrUsed=0;
m_bmpinfo->bmiHeader.biClrImportant=0;

if(hdib!=NULL)
{

::DrawDibBegin(hdib,
m_hdc,
320,// don't stretch
240,// don't stretch
&m_bmpinfo->bmiHeader,
IMAGE_WIDTH, // width of image
IMAGE_HEIGHT, // height of image
DDF_SAME_DRAW
);

}

::DrawDibDraw(hdib,
m_hdc,
500,// dest : left pos
100,// dest : top pos
320, // don't zoom x
240, // don't zoom y
&m_bmpinfo->bmiHeader, // bmp header info
lphdr->lpData, // bmp data
0, // src :left
0, // src :top
IMAGE_WIDTH, // src : width
IMAGE_HEIGHT, // src : height
DDF_SAME_DRAW // use prev params....
);
::DrawDibEnd(hdib);
::DrawDibClose(hdib);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: