Использование кэшированного растрового изображения для повышения производительности

Объекты 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 . Метод DrawImage завершится ошибкой , если передать ему объект CachedBitmap , созданный до изменения формата отображения.