Я получаю данные с камеры и сохраняю каждое изображение как страницу в многостраничном TIFF. Я могу установить, что каждый файл имеет, например. 100 страниц и я звоню:
TIFFSetField(out, TIFFTAG_PAGENUMBER, page_number, total_pages);
Однако, если я не смогу достаточно быстро записать данные на диск, я остановлю приобретение. К этому моменту я, возможно, написал 50 из 100 страниц в многостраничный TIFF. Теперь многостраничный TIFF-файл показывает общее количество страниц как 100, но на самом деле было записано только 50 страниц. Некоторые приложения сообщают о 100 страницах, но для страниц 51-100 данных не будет, и изображения будут казаться черными.
Поэтому мне нужно будет обновить число total_pages
в тот момент, когда я заканчиваю запись на диск до значения последней записанной страницы. Это вообще можно сделать? Записывается ли значение total_pages
один раз в общий заголовок, который я мог бы обновлять и исправлять файл таким образом, или это значение записывается в каждую страницу, что означает, что мне придется редактировать каждую страницу, которая уже была записана на диск? Или есть лучший подход, как справиться с этим?