Share via


Metodo Metafile::SetDownLevelRasterizationLimit (gdiplusheaders.h)

Imposta la risoluzione per determinate bitmap di pennello archiviate in questo metafile.

Sintassi

Status SetDownLevelRasterizationLimit(
  [in] UINT metafileRasterizationLimitDpi
);

Parametri

[in] metafileRasterizationLimitDpi

Tipo: UINT

Intero non negativo che specifica la risoluzione in dpi. Se si imposta questo parametro uguale a 0, la risoluzione è impostata sulla corrispondenza della risoluzione dell'handle di contesto del dispositivo passato al costruttore Metafile . Se si imposta questo parametro su un valore maggiore di 0 ma minore di 10, la risoluzione viene lasciata invariata.

Valore restituito

Tipo: Stato

Se il metodo ha esito positivo, restituisce OK, ovvero un elemento dell'enumerazione Status .

Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .

Commenti

Lo scopo di questo metodo è impedire che i metafile diventino troppo grandi a causa di pennelli di trama e sfumatura archiviati ad alta risoluzione. Si supponga di costruire un oggetto Metafile (per registrare un metafileEmfTypeEmfOnly ) in base al contesto del dispositivo di una stampante con una risoluzione di 600 dpi. Si supponga anche di creare un pennello sfumatura di percorso o un pennello di trama basato su un oggetto Bitmap con una risoluzione di 96 dpi. Se la bitmap che rappresenta tale pennello viene archiviata nel metafile con una risoluzione di 96 dpi, richiederà molto meno spazio rispetto a se è archiviata con una risoluzione di 600 dpi.

Il limite di rasterizzazione predefinito per i metafile è 96 dpi. Quindi, se non si chiama questo metodo, le bitmap del pennello sfumatura del percorso e del pennello di trama vengono archiviate con una risoluzione di 96 dpi.

Il limite di rasterizzazione ha un effetto sui metafile di tipo EmfTypeEmfOnly e EmfTypeEmfPlusDual, ma non ha alcun effetto sui metafile di tipo EmfTypeEmfPlusOnly.

Esempio

Nell'esempio seguente viene costruito un oggetto Metafile in base al contesto del dispositivo di una stampante. Il codice crea un pennello di trama basato su un file BMP e quindi registra un'ellisse riempita con quel pennello. Si supponga che la stampante abbia una risoluzione di 600 dpi e che l'oggetto Bitmap abbia una risoluzione di 96 dpi.


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

Requisiti

   
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdiplusheaders.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Emftype

Metafile

Metafile::GetDownLevelRasterizationLimit

Registrazione di metafile