我正在尝试为我的程序编写一个组件,以从视频中重新调整图像帧的大小。当前代码被调用,它CDC
从当前帧中获取。
void showImageFrame(LPSTR info)
{
BITMAPINFOHEADER * pInfo = (BITMAPINFOHEADER *)info;
CDC* pDC=pWnd=GetDlgItem(IDCFrame)->GetDC();
CRect rect;
pWnd->GetClientRect(&rect);
SetDIBitsToDevice(pDC->GetSafeHdc(), 0, 0, rect.Width(), rect.Height(), 0, 0, 0, pInfo->biHeight, info + *(LPDWORD)info, (LPBITMAPINFO) pInfo, DIB_RGB_COLORS);
pDC->StretchBlt(0,0,200,200,pDC,0,0,rect.Width(),rect.Height(),SRCCOPY);
}
确实会重新调整当前帧显示的StretchBlt
图像大小,但会保留SetDIBitsToDevice
. 有什么方法可以删除 的图像SetDIBitsToDevice
,或者以更有效的方式执行此操作?我正在尝试将图像大小重新调整为 200x200。
使用上面的当前代码,我得到以下输出。
谢谢!