キャッシュされたビットマップを使用してパフォーマンスを向上させる
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 );
手記
CachedBitmap オブジェクトは、CachedBitmap オブジェクトが構築されたときの表示デバイスの形式と一致します。 プログラムのユーザーが表示設定を変更した場合、コードは CachedBitmap オブジェクト 新しく作成する必要があります。 表示形式を変更する前に作成された CachedBitmap オブジェクトを渡すと、DrawImage メソッドは失敗します。