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);
以下代码是希望以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);
相关文章推荐
- 读入图像对其进行放大缩小
- 功能及需求:pictureBox里图像的缩放,要求不保存缩放后的图像,只对原图像进行查看式缩放,且图像缩小然后放大,处理图像失真的问题。
- android相机、图库获取照片,并实现两个手机对图像进行放大,缩小功能
- matlab练习程序(图像放大/缩小,放大没有进行插值操作)
- 图像质量评价,图片放大和缩小
- 关于图像缩小放大的2个结论
- 通过调节坐标进行jfree图的放大缩小
- 简单的MFC在Picture控件上放大缩小图像,显示时:缩小功能正常,放大功能有问题
- android图像绘制(二)画布上放大缩小问题
- 关于GDI图像放大缩小StretchBlt显示,图像失真的解决
- ffmpeg放大缩小图像
- 自定义View_绘制圆_进行拖动(不出屏幕)放大缩小
- [转]openCV: 线性插值方法进行图像放大
- 图像的放大与缩小(1)——等距采样法
- [转]opencv中放大和缩小图像
- linux 下使用opencv对图像进行缩小为原来的一半大
- 图像的放大与缩小(3)——双立方插值算法
- VC中用线性插值方法进行图像放大
- java swing图像放大、缩小、剪切
- libswscale图像格式转换与放大缩小