Compartir a través de


Método Metafile::SetDownLevelRasterizationLimit (gdiplusheaders.h)

Establece la resolución de determinados mapas de bits de pincel almacenados en este metarchivo.

Sintaxis

Status SetDownLevelRasterizationLimit(
  [in] UINT metafileRasterizationLimitDpi
);

Parámetros

[in] metafileRasterizationLimitDpi

Tipo: UINT

Entero no negativo que especifica la resolución en ppp. Si establece este parámetro igual a 0, la resolución se establece para que coincida con la resolución del identificador de contexto del dispositivo que se pasó al constructor de metarchivo . Si establece este parámetro en un valor mayor que 0 pero menor que 10, la resolución se deja sin cambios.

Valor devuelto

Tipo: Estado

Si el método se ejecuta correctamente, devuelve OK, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

El propósito de este método es evitar que los metarchivos sean demasiado grandes como resultado de que los pinceles de textura y degradado se almacenen en alta resolución. Supongamos que construye un objeto Metafile (para grabar un metarchivo EmfTypeEmfOnly ) basado en el contexto del dispositivo de una impresora que tiene una resolución de 600 ppp. Supongamos también que crea un pincel degradado de trazado o un pincel de textura basado en un objeto Bitmap que tiene una resolución de 96 ppp. Si el mapa de bits que representa ese pincel se almacena en el metarchivo con una resolución de 96 ppp, necesitará mucho menos espacio que si se almacena con una resolución de 600 ppp.

El límite de rasterización predeterminado para los metarchivos es de 96 ppp. Por lo tanto, si no llama a este método en absoluto, los mapas de bits de pincel de degradado de ruta y pincel de textura se almacenan con una resolución de 96 ppp.

El límite de rasterización tiene un efecto en los metarchivos de tipo EmfTypeEmfOnly y EmfTypeEmfPlusDual, pero no tiene ningún efecto en los metarchivos de tipo EmfTypeEmfPlusOnly.

Ejemplos

En el ejemplo siguiente se crea un objeto Metafile basado en el contexto del dispositivo de una impresora. El código crea un pincel de textura basado en un archivo BMP y, a continuación, registra una elipse rellenada con ese pincel. Supongamos que la impresora tiene una resolución de 600 ppp y el objeto Bitmap tiene una resolución de 96 ppp.


// 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.

Requisitos

   
Cliente mínimo compatible Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdiplusheaders.h (include Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

EmfType

Metarchivo de

Metafile::GetDownLevelRasterizationLimit

Metarchivos de grabación