Freigeben über


Metafile::SetDownLevelRasterizationLimit-Methode (gdiplusheaders.h)

Legt die Auflösung für bestimmte Pinsel-Bitmaps fest, die in dieser Metadatei gespeichert sind.

Syntax

Status SetDownLevelRasterizationLimit(
  [in] UINT metafileRasterizationLimitDpi
);

Parameter

[in] metafileRasterizationLimitDpi

Typ: UINT

Nicht negative ganze Zahlen, die die Auflösung in dpi angibt. Wenn Sie diesen Parameter auf 0 festlegen, wird die Auflösung so festgelegt, dass sie der Auflösung des Gerätekontexthandles entspricht, das an den Metafile-Konstruktor übergeben wurde. Wenn Sie diesen Parameter auf einen Wert festlegen, der größer als 0, aber kleiner als 10 ist, bleibt die Auflösung unverändert.

Rückgabewert

Typ: Status

Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .

Wenn die Methode fehlschlägt, gibt sie eines der anderen Elemente der Status-Enumeration zurück.

Hinweise

Der Zweck dieser Methode besteht darin, zu verhindern, dass Metadateien zu groß werden, weil Textur- und Farbverlaufspinsel mit hoher Auflösung gespeichert werden. Angenommen, Sie erstellen ein Metafile-Objekt (zum Aufzeichnen einer EmfTypeEmfOnly-Metadatei ) basierend auf dem Gerätekontext eines Druckers mit einer Auflösung von 600 dpi. Angenommen, Sie erstellen einen Pfadverlaufspinsel oder einen Texturpinsel basierend auf einem Bitmap-Objekt mit einer Auflösung von 96 dpi. Wenn die Bitmap, die diesen Pinsel darstellt, in der Metadatei mit einer Auflösung von 96 dpi gespeichert wird, benötigt sie viel weniger Platz als bei einer Auflösung von 600 dpi.

Das Standardrasterungslimit für Metadateien beträgt 96 dpi. Wenn Sie diese Methode also überhaupt nicht aufrufen, werden Pfadverlaufspinsel- und Texturpinsel-Bitmaps mit einer Auflösung von 96 dpi gespeichert.

Das Rasterungslimit wirkt sich auf Metadateien vom Typ EmfTypeEmfOnly und EmfTypeEmfPlusDual aus, hat jedoch keine Auswirkungen auf Metadateien vom Typ EmfTypeEmfPlusOnly.

Beispiele

Im folgenden Beispiel wird ein Metafile-Objekt basierend auf dem Gerätekontext eines Druckers erstellt. Der Code erstellt einen Texturpinsel basierend auf einer BMP-Datei und zeichnet dann eine mit diesem Pinsel gefüllte Ellipse auf. Angenommen, der Drucker hat eine Auflösung von 600 dpi und das Bitmap-Objekt eine Auflösung von 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.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile gdiplusheaders.h (include Gdiplus.h)
Bibliothek Gdiplus.lib
DLL Gdiplus.dll

Weitere Informationen

Emftype

Metafile

Metafile::GetDownLevelRasterizationLimit

Aufzeichnen von Metadateien