Поделиться через


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

объекты изображений и объекты растровых изображений хранят изображения в независимом от устройства формате. Объект CachedBitmap сохраняет изображение в формате текущего устройства отображения. Отрисовка изображения, хранящегося в объекте CachedBitmap, осуществляется быстро, поскольку обработка не требует времени на преобразование изображения в формат, необходимый для устройства отображения.

В следующем примере создается объект растрового изображения и объект кэширующего растрового изображения из файла Texture.jpg. Bitmap и 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, созданный до изменения формата отображения.