Strecken eines Bilds
Im folgenden Beispiel werden die Bilder eines Videoclips dehnt. Es erhöht die Dimensionen des Zielrechtecks mithilfe des MCIWndPutDest-Makros . Die Größe des Wiedergabebereichs bleibt unverändert, sodass das Ergebnis ein verzerrtes, vergrößertes Bild ist. In den Beispielen wird die MCIWndPutDest-Funktion verwendet, um das Zielrechteck in Bezug auf den Wiedergabebereich neu zu positionieren, sodass verschiedene Teile des gestreckten Bilds angezeigt werden können.
extern RECT rCurrent, rDest;
case WM_COMMAND:
switch (wParam)
{
case IDM_CREATEMCIWND:
g_hwndMCIWnd = MCIWndCreate(hwnd,
g_hinst,
WS_CHILD | WS_VISIBLE,
"sample.avi");
break;
case IDM_STRETCHIMAGE: // stretch destination RECT 3:2,
MCIWndGetDest(g_hwndMCIWnd, &rCurrent); // destination RECT
rDest.top = rCurrent.top; // new boundaries
rDest.right = rCurrent.right;
rDest.left = rCurrent.left +
((rCurrent.left - rCurrent.right) * 3);
rDest.bottom = rCurrent.top +
((rCurrent.bottom - rCurrent.top) * 2);
MCIWndPutDest(g_hwndMCIWnd, &rDest); // new destination
break;
case IDM_MOVEDOWN: // move toward bottom of image
MCIWndGetDest(g_hwndMCIWnd, &rCurrent); // destination RECT
rCurrent.top -= 100; // new boundaries
rCurrent.bottom -= 100;
MCIWndPutDest(g_hwndMCIWnd, &rCurrent); // new destination
break;
case IDM_MOVEUP: // move toward top of image
MCIWndGetDest(g_hwndMCIWnd, &rCurrent); // destination RECT
rCurrent.top += 100; // new boundaries
rCurrent.bottom += 100;
MCIWndPutDest(g_hwndMCIWnd, &rCurrent); // new destination
break;
case IDM_MOVELEFT: // move toward left edge of image
MCIWndGetDest(g_hwndMCIWnd, &rCurrent); // destination RECT
rCurrent.right += 100; // new boundaries
rCurrent.left += 100;
MCIWndPutDest(g_hwndMCIWnd, &rCurrent); // new destination
break;
case IDM_MOVERIGHT: // move toward right edge of image
MCIWndGetDest(g_hwndMCIWnd, &rCurrent); // destination RECT
rCurrent.right -= 100; // new boundaries
rCurrent.left -= 100;
MCIWndPutDest(g_hwndMCIWnd, &rCurrent); // new destination
break;
}
break;
// Handle other messages here.