У меня простая проблема.Я обрабатываю огромные изображения (> 4 ГБ), и при загрузке всех из них в память я заполняю ОЗУ, и программа уничтожается.Я попытался сохранить их как мозаичные файлы и затем использовать libtiff для загрузки их по частям следующим образом:
tdata_t buf = _TIFFmalloc(TIFFTileSize(tifSrc));
for(int i = 0;i< 20000;i+=128){
for(int j = 0;j< 20000;j+=128)
{
TIFFReadTile(tifSrc, buf , i, j, 0,0);
TIFFWriteTile(tifDst, (tdata_t)buf , i, j,0, 0);
}
}
_TIFFfree(buf);
Но я ожидал, что приведенный выше код будет загружать в память только одну плитку за итерацию (128x128байт), вместо этого сохраняется все изображение ... Кто-нибудь знает, как я могу загрузить в память только одну плитку?