Verwenden einer zwischengespeicherten Bitmap zur Verbesserung der Leistung

Bild - und Bitmapobjekte speichern Bilder in einem geräteunabhängigen Format. Ein CachedBitmap-Objekt speichert ein Bild im Format des aktuellen Anzeigegeräts. Das Rendern eines in einem CachedBitmap-Objekt gespeicherten Bilds ist schnell, da keine Verarbeitungszeit für das Konvertieren des Bilds in das vom Anzeigegerät erforderliche Format aufgewendet wird.

Im folgenden Beispiel werden ein Bitmap-Objekt und ein CachedBitmap-Objekt aus der Datei Texture.jpg erstellt. Die Bitmap und die CachedBitmap werden jeweils 30.000 Mal gezeichnet. Wenn Sie den Code ausführen, sehen Sie, dass die CachedBitmap-Bilder wesentlich schneller gezeichnet werden als die Bitmapbilder .

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 );

Hinweis

Ein CachedBitmap-Objekt entspricht dem Format des Anzeigegeräts zum Zeitpunkt der Erstellung des CachedBitmap-Objekts . Wenn der Benutzer Ihres Programms die Anzeigeeinstellungen ändert, sollte Ihr Code ein neues CachedBitmap-Objekt erstellen. Die DrawImage-Methode schlägt fehl, wenn Sie ein CachedBitmap-Objekt übergeben, das vor einer Änderung des Anzeigeformats erstellt wurde.