イメージのトリミング
[このページに関連付けられている機能 である MCIWnd ウィンドウ クラスは、従来の機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 可能であれば、新しいコードで MCIWnd ウィンドウ クラスの代わりに MediaPlayer を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
次の例では、MCIWnd ウィンドウを作成し、AVI ファイルを読み込みます。 ウィンドウには、フレームの 4 つの辺から高さまたは幅の 4 分の 1 をトリミングするトリミング コマンドがメニューに含まれています。 この例では、 MCIWndGetSource マクロを使用して、ソース四角形の現在の (初期) ディメンションを取得します。 変更されたソースの四角形は、元の高さと幅の半分であり、元のフレームの中央に配置されます。 MCIWndPutSource マクロを呼び出すと、ソース四角形の座標が再定義されます。
// extern RECT rSource, rDest;
case WM_COMMAND:
switch (wParam)
{
case IDM_CREATEMCIWND:
g_hwndMCIWnd = MCIWndCreate( hwnd,
g_hinst,
WS_CHILD | WS_VISIBLE,
"sample.avi" );
break;
case IDM_CROPIMAGE: // crops image
MCIWndGetSource(g_hwndMCIWnd, &rSource); // source rectangle
rDest.left = rSource.left + // new boundaries
((rSource.right - rSource.left) / 4);
rDest.right = rSource.right -
((rSource.right - rSource.left) / 4);
rDest.top = rSource.top +
((rSource.bottom - rSource.top) / 4);
rDest.bottom = rSource.bottom -
((rSource.bottom - rSource.top) / 4);
MCIWndPutSource(g_hwndMCIWnd, &rDest); // new source rectangle
}
break;
// Handle other messages here.