다음을 통해 공유


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에서 반환된 XY 데이터 멤버를 사용하여 원본 사각형의 왼쪽 위 모서리를 지정하기 때문에 성공합니다.

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%만 표시합니다.

타원 3개 부분을 보여 주는 스크린샷: 첫 번째 타원 모두, 두 번째 타원의 30%, 세 번째 타원의 75%

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP, Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 gdiplusheaders.h(Gdiplus.h 포함)
라이브러리 Gdiplus.lib
DLL Gdiplus.dll

추가 정보

이미지

이미지::GetHeight

이미지::GetWidth

이미지, 비트맵 및 메타파일

RectF

단위

이미지, 비트맵 및 메타파일 사용