Metafile::SetDownLevelRasterizationLimit method (gdiplusheaders.h)
Mengatur resolusi untuk bitmap kuas tertentu yang disimpan dalam metafile ini.
Sintaks
Status SetDownLevelRasterizationLimit(
[in] UINT metafileRasterizationLimitDpi
);
Parameter
[in] metafileRasterizationLimitDpi
Jenis: UINT
Bilangan bulat non-negatif yang menentukan resolusi dalam dpi. Jika Anda mengatur parameter ini sama dengan 0, resolusi diatur agar sesuai dengan resolusi handel konteks perangkat yang diteruskan ke konstruktor Metafile . Jika Anda mengatur parameter ini ke nilai yang lebih besar dari 0 tetapi kurang dari 10, resolusi dibiarkan tidak berubah.
Menampilkan nilai
Jenis: Status
Jika metode berhasil, metode mengembalikan OK, yang merupakan elemen dari enumerasi Status .
Jika metode gagal, metode mengembalikan salah satu elemen lain dari enumerasi Status .
Keterangan
Tujuan dari metode ini adalah untuk mencegah metafiles menjadi terlalu besar sebagai akibat dari tekstur dan sikat gradien disimpan pada resolusi tinggi. Misalkan Anda membuat objek Metafile (untuk merekam metafile EmfTypeEmfOnly ) berdasarkan konteks perangkat printer yang memiliki resolusi 600 dpi. Misalkan juga Anda membuat kuas gradien jalur atau kuas tekstur berdasarkan objek Bitmap yang memiliki resolusi 96 dpi. Jika bitmap yang mewakili bahwa kuas disimpan dalam metafile dengan resolusi 96 dpi, itu akan membutuhkan lebih sedikit ruang daripada jika disimpan dengan resolusi 600 dpi.
Batas rasterisasi default untuk metafiles adalah 96 dpi. Jadi jika Anda tidak menyebut metode ini sama sekali, kuas gradien jalur dan bitmap kuas tekstur disimpan dengan resolusi 96 dpi.
Batas rasterisasi memiliki efek pada metafiles jenis EmfTypeEmfOnly dan EmfTypeEmfPlusDual, tetapi tidak berpengaruh pada metafiles jenis EmfTypeEmfPlusOnly.
Contoh
Contoh berikut membuat objek Metafile berdasarkan konteks perangkat printer. Kode ini membuat kuas tekstur berdasarkan file BMP dan kemudian merekam elips yang diisi dengan kuas itu. Asumsikan bahwa printer memiliki resolusi 600 dpi dan objek Bitmap memiliki resolusi 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.
Persyaratan
Klien minimum yang didukung | Windows XP, Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | gdiplusheaders.h (termasuk Gdiplus.h) |
Pustaka | Gdiplus.lib |
DLL | Gdiplus.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk