Stretching an Image

The following example stretches the images of a video clip. It increases the dimensions of the destination rectangle by using the MCIWndPutDest macro. The size of the playback area remains unchanged, so the result is a distorted, magnified image. The examples uses the MCIWndPutDest function to reposition the destination rectangle with respect to the playback area, providing a way to view different portions of the stretched image.

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.

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database