Share via


キャッシュされたビットマップを使用したパフォーマンスの向上

Image オブジェクトと Bitmap オブジェクトは、デバイスに依存しない形式でイメージを格納します。 CachedBitmap オブジェクトは、現在のディスプレイ デバイスの形式でイメージを格納します。 CachedBitmap オブジェクトに格納されているイメージのレンダリングは高速です。これは、イメージをディスプレイ デバイスで必要な形式に変換するのに処理時間が費やされないためです。

次の例では、 ファイル Texture.jpgから Bitmap オブジェクトと CachedBitmap オブジェクトを作成します。 ビットマップ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 );

Note

CachedBitmap オブジェクトは、CachedBitmap オブジェクトが構築された時点での表示デバイスの形式と一致します。 プログラムのユーザーが表示設定を変更した場合、コードは新しい CachedBitmap オブジェクトを構築する必要があります。 表示形式を変更する前に作成された CachedBitmap オブジェクトを渡すと、DrawImage メソッドは失敗します。