使用快取點陣圖來改善效能

ImageBitmap 物件會以與裝置無關的格式儲存影像。 CachedBitmap物件會以目前顯示裝置的格式儲存影像。 轉譯儲存在 CachedBitmap 物件中的影像很快速,因為不會花費任何處理時間將影像轉換成顯示裝置所需的格式。

下列範例會從檔案Texture.jpg建立 Bitmap 物件和 CachedBitmap 物件。 BitmapCachedBitmap分別繪製 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方法將會失敗。