Изменение размера изображения с использованием 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или сделать это более эффективным способом? Я пытаюсь изменить размер изображения до 200×200.

Используя текущий код выше, я получаю следующий вывод.
введите описание изображения здесь

Спасибо!

http://i.stack.imgur.com/dWXRZ.png

-1

Решение

Один быстрый способ. Создайте пустое (белое) изображение и растяните его поверх исходного изображения, затем растяните изображение с измененным размером.

0

Другие решения


По вопросам рекламы [email protected]