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