How to equivalence zoom image
Author: Xu Jing Zhou
How can I best maintain an image protocol ratio when magnifying or narrowing an image? The following is provided to help you implement, then the rectangular area returned, the rectangular area returns is the best display image size.
l The first parameter rcscreen in the macout is the rectangle size of the image to be displayed. The second parameter sizePicture is the image itself, the third parameter bceter is displayed in the case, and the return value CRECT is only the image optimal display size.
The description is as follows:
CRECT RectSizewithConstantratio (CRECT * RCSCREEN,
CSIZE SIZEPICTURE,
Bool bcenter)
{
CRECT Rect (rcscreen);
Double dwidth = rcscreen-> width ();
Double DHEIGHT = rcscreen-> height ();
Double daspectratio = dwidth / dheight;
Double DPICTUREWIDTH = SIZEPICTURE.CX;
Double DPICTUREHEIGHT = SIZEPICTURE.CY;
Double DPICTureaspectratio = DPICTUREWIDTH / DPICTUREHEIGHT;
// if the aspect ratios are the Same dam Rectangle
// Will Do, Otherwise We need to Calculate the New Rectangle
IF (DPICTureaspectratio> Daspectratio)
{
INT nnewheight = (int) (dwidth / dpicturewidth * dpictureheight);
INT ncenteringfactor = (rcscreen-> height () - nnewheight) / 2;
Rect.seTRect (0,
NcenteringFactor,
(int) DWIDTH,
NNEWHEIGHT NCENTERINGFACTOR);
}
ELSE IF (DPictureAspectratio { INT nnewwidth = (int) (DHEIGHT / DPICTUREHEIGHT * DPICTUREWIDTH); INT NCENTERINGFACTOR = (rcscreen-> width () - nnewwidth/2; Rect.seTRect (ncenteringfactor, 0, NNewWidth NcenteringFactor, (INT)); } RETURN RECT; } Contact information: Email: jingzhou_xu@163.com Future Studio (Future Studio)