-1

ビデオから画像フレームのサイズを変更するプログラムのコンポーネントを作成しようとしています。現在のコードが呼び出さ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

4

1 に答える 1

0

1つの簡単な方法。空白の (白い) 画像を作成し、元の画像の上に伸ばしてから、サイズ変更した画像を StretchBlt します。

于 2014-10-15T06:00:02.230 に答える