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