Image::GetBounds 메서드(gdiplusheaders.h)
Image::GetBounds 메서드는 이 이미지에 대한 경계 사각형을 가져옵니다.
구문
Status GetBounds(
[out] RectF *srcRect,
[out] Unit *srcUnit
);
매개 변수
[out] srcRect
형식: RectF*
경계 사각형을 수신하는 RectF 개체에 대한 포인터입니다.
[out] srcUnit
형식: 단위*
경계 사각형의 측정 단위를 나타내는 단위 열거형의 요소를 수신하는 변수에 대한 포인터입니다.
반환 값
형식: 상태
메서드가 성공하면 Status 열거형의 요소인 확인을 반환합니다.
메서드가 실패하면 Status 열거형의 다른 요소 중 하나를 반환합니다.
설명
메타파일의 경계 사각형에 반드시 왼쪽 위 모서리로 (0, 0)가 있는 것은 아닙니다. 메타파일을 기록하는 동안 실행된 그리기 명령에 따라 왼쪽 위 모서리의 좌표는 음수 또는 양수일 수 있습니다. 예를 들어 메타파일은 다음 문으로 기록된 단일 타원으로 구성되어 있다고 가정합니다.
DrawEllipse(&pen, 200, 100, 80, 40);
그런 다음 메타파일의 경계 사각형이 줄임표를 묶습니다. 경계 사각형의 왼쪽 위 모서리는 (0, 0)이 아닙니다. 오히려 (200, 100)에 가까운 지점이 될 것입니다.
예제
다음 예제에서는 메타파일을 기반으로 Image 개체를 만든 다음 이미지를 그립니다. 다음으로, 코드는 Image::GetBounds 메서드를 호출하여 이미지의 경계 사각형을 가져옵니다. 이 코드는 이미지의 75%를 표시하기 위해 두 번의 시도를 합니다. 첫 번째 시도는 원본 사각형의 왼쪽 위 모서리에 대해 (0, 0)을 지정하기 때문에 실패합니다. 두 번째 시도는 Image::GetBounds에서 반환된 X 및 Y 데이터 멤버를 사용하여 원본 사각형의 왼쪽 위 모서리를 지정하기 때문에 성공합니다.
VOID Example_GetBounds(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"SampleMetafile2.emf");
graphics.DrawImage(&image, 0, 0);
// Get the bounding rectangle for the image (metafile).
RectF boundsRect;
Unit unit;
image.GetBounds(&boundsRect, &unit);
// Attempt to draw 75 percent of the image.
// Less than 75 percent of the image will be visible because the
// upper-left corner of the image's bounding rectangle is not (0, 0).
RectF dstRect(250.0f, 0.0f, 100.0f, 50.0f);
graphics.DrawImage(
&image,
dstRect, // destination rectangle
0.0f, 0.0f, // upper-left corner of source rectangle
0.75f*boundsRect.Width, // width of source rectangle
boundsRect.Height, // height of source rectangle
UnitPixel);
// Draw 75 percent of the image.
dstRect.Y = 80.0f;
graphics.DrawImage(
&image,
dstRect, // destination rectangle
boundsRect.X, boundsRect.Y, // upper-left corner of source rectangle
0.75f*boundsRect.Width, // width of source rectangle
boundsRect.Height, // height of source rectangle
UnitPixel);
}
이전 코드는 특정 파일과 함께 SampleMetafile2.emf 다음 출력을 생성했습니다. 이미지의 75%를 그리는 첫 번째 시도(오른쪽 위)는 이미지의 약 30%만 표시합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP, Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | gdiplusheaders.h(Gdiplus.h 포함) |
라이브러리 | Gdiplus.lib |
DLL | Gdiplus.dll |