이미지 자르기
[이 페이지와 연결된 기능인 MCIWnd 창 클래스는 레거시 기능입니다. MediaPlayer로 대체되었습니다. MediaPlayer는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 MCIWnd 창 클래스 대신 MediaPlayer를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
다음 예제에서는 MCIWnd 창을 만들고 AVI 파일을 로드합니다. 창에는 프레임의 네 면 각각에서 높이 또는 너비의 1/4을 자르는 자르기 명령이 메뉴에 포함되어 있습니다. 이 예제에서는 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.