Добрый деньРассмотрим сначала простой и понятный случай. Есть имедж размером M x N, пусть например значение каждого пикселя соответствует высоте над уровнем моря. Имедж может быть велик (или имеем много имеджей), поэтому не храним его весь в памяти а подкачиваем его с диска. ПсевдокодКодC++ (Qt)float Image::GetPixel( int x, int y ){// номер страницы в файле подкачки int pageNo = (y / mPixelPageY) * mNumPageX + x / mPixelPageX; // загрузили страницу if (!mPage[pageNo].IsLoaded()) LoadPage(pageNo, mBaseOffsetInFile + pageNo * mPageSizeBytes);// координаты пикселя внутри страницы x %= mPixelPageX; y %= mPixelPageY;// данные return mPage[pageNo].mData[y * mPixelPageX + x];} Теперь более сложный случай: каждому пикселю соответствует последовательность значений переменной длины. Для оного всего 1 значение, для другого 10, для какого-то и все 20 (пусть и редко). Как организовать подкачку в этом случае? Есть мысли?Спасибо
|