Я пытаюсь написать компонент для моей программы, чтобы изменить размер кадров изображения из видео. Вызывается текущий код, который принимает CDC
из текущего кадра.Изменение размера изображения с помощью 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.
Используя текущий код выше, я получаю следующий вывод.
Спасибо!
http://i.stack.imgur.com/dWXRZ.png
Вы хотите изменить размер изображения и показать его в окне (кадре) так же, как и исходное окно (рамка)? – elimad
Да, я хочу, чтобы иметь возможность изменять размер изображения и отображать его в пределах одного кадра. Есть ли способ сделать это? – xSukiyaki
Я все еще пытаюсь выяснить, как показать код в этих комментариях. извините за нечистоплотность –