使用快取點陣圖來改善效能
Image 和 Bitmap 物件會以與裝置無關的格式儲存影像。 CachedBitmap物件會以目前顯示裝置的格式儲存影像。 轉譯儲存在 CachedBitmap 物件中的影像很快速,因為不會花費任何處理時間將影像轉換成顯示裝置所需的格式。
下列範例會從檔案Texture.jpg建立 Bitmap 物件和 CachedBitmap 物件。 Bitmap和CachedBitmap分別繪製 30,000 次。 如果您執行程式碼,您會看到 CachedBitmap 影像的繪製速度遠高於 點陣圖 影像。
Bitmap bitmap(L"Texture.jpg");
UINT width = bitmap.GetWidth();
UINT height = bitmap.GetHeight();
CachedBitmap cBitmap(&bitmap, &graphics);
int j, k;
for(j = 0; j < 300; j += 10)
for(k = 0; k < 1000; ++k)
graphics.DrawImage(&bitmap, j, j / 2, width, height);
for(j = 0; j < 300; j += 10)
for(k = 0; k < 1000; ++k)
graphics.DrawCachedBitmap(&cBitmap, j, 150 + j / 2 );
注意
CachedBitmap物件會比對建構CachedBitmap物件時顯示裝置的格式。 如果您的程式使用者變更顯示設定,您的程式碼應該建構新的 CachedBitmap 物件。 如果您將CachedBitmap物件傳遞至顯示格式變更之前所建立的 CachedBitmap 物件,DrawImage方法將會失敗。