다음을 통해 공유


Metafile::SetDownLevelRasterizationLimit 메서드(gdiplusheaders.h)

이 메타파일에 저장된 특정 브러시 비트맵의 해상도를 설정합니다.

구문

Status SetDownLevelRasterizationLimit(
  [in] UINT metafileRasterizationLimitDpi
);

매개 변수

[in] metafileRasterizationLimitDpi

형식: UINT

dpi의 해상도를 지정하는 음수가 아닌 정수입니다. 이 매개 변수를 0으로 설정하면 메타파일 생성자에 전달된 디바이스 컨텍스트 핸들의 해상도와 일치하도록 해상도가 설정됩니다. 이 매개 변수를 0보다 크지만 10보다 작은 값으로 설정하면 해상도는 변경되지 않습니다.

반환 값

형식: 상태

메서드가 성공하면 Status 열거형의 요소인 OK를 반환합니다.

메서드가 실패하면 Status 열거형의 다른 요소 중 하나를 반환합니다.

설명

이 메서드의 목적은 텍스처 및 그라데이션 브러시가 고해상도로 저장되어 메타파일이 너무 커지지 않도록 하는 것입니다. 해상도가 600dpi인 프린터의 디바이스 컨텍스트를 기반으로 Metafile 개체( EmfTypeEmfOnly 메타파일 기록용)를 생성한다고 가정합니다. 또한 해상도가 96dpi인 Bitmap 개체를 기반으로 경로 그라데이션 브러시 또는 텍스처 브러시를 만듭니다. 해당 브러시를 나타내는 비트맵이 해상도가 96dpi인 메타파일에 저장되는 경우 해상도가 600dpi인 경우보다 훨씬 적은 공간이 필요합니다.

메타파일의 기본 래스터화 제한은 96dpi입니다. 따라서 이 메서드를 전혀 호출하지 않으면 경로 그라데이션 브러시 및 텍스처 브러시 비트맵이 96dpi의 해상도로 저장됩니다.

래스터화 제한은 EmfTypeEmfOnlyEmfTypeEmfPlusDual 형식의 메타파일에 영향을 주지만 EmfTypeEmfPlusOnly 형식의 메타파일에는 영향을 주지 않습니다.

예제

다음 예제에서는 프린터의 디바이스 컨텍스트에 따라 Metafile 개체를 생성합니다. 이 코드는 BMP 파일을 기반으로 텍스처 브러시를 만든 다음 해당 브러시로 채워진 타원을 기록합니다. 프린터의 해상도가 600dpi이고 Bitmap 개체의 해상도가 96dpi라고 가정합니다.


// Get a device context for a printer.
HDC hdcPrint = CreateDC(NULL, TEXT("\\\\printserver\\printer1"), NULL, NULL); 

// Construct a Metafile object (for recording) based on a 600-DPI printer.
Metafile metafile(L"Metafile.emf", hdcPrint, EmfTypeEmfOnly);
{     
   // Create a texture brush based on a 96-DPI bitmap. 
   Bitmap bitmap(L"Texture.bmp");
   TextureBrush textureBrush(&bitmap);

   // Set the rasterization limit of the metafile to match the DPI of the
   // printer DC, in this case 600. When the bitmap for the texture brush
   // is stored in the metafile, the bitmap will be expanded by a factor of
   // about 6 horizontally and vertically. That will increase the size of 
   // the bitmap by a factor of about 36.
   metafile.SetDownLevelRasterizationLimit(0);

   // Record an ellipse filled with the texture brush.
   Graphics graphics(&metafile);  
   graphics.FillEllipse(&textureBrush, 10, 10, 40, 40);
}

// The preceding code, along with a particular 24 x 23 bitmap,
// produced a 114 kilobyte metafile. Passing 96, instead of 0, to the 
// SetDownLevelRasterizationLimit method produced a 3.5 kilobyte metafile.

요구 사항

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

참고 항목

EmfType

Metafile

Metafile::GetDownLevelRasterizationLimit

메타파일 기록