Я пытаюсь записать 10,12-битные файлы RGB TIFF с помощью LibTIFF.
Данные пикселей сохраняются локально в буфере unsigned short
(16 бит)
1) Если я установил TIFFTAG_BITSPERSAMPLE
в 10 или 12, из буфера считывается недостаточно битов, а выход неверен. (Я понимаю, что это просто чтение 10 или 12 бит на компонент, а не 16, и это проблема)
2) Я попытался упаковать бит в буфер, так что это действительно 12-R, 12-G, 12-B. В этом случае я думаю, что файл написан правильно, но ни один зритель, который мог найти, не смог правильно отобразить это изображение.
3) Если я устанавливаю от TIFFTAG_BITSPERSAMPLE
до 16, зрители могут отображать TIFF-изображение, но тогда у меня есть проблема, что я не знаю, было ли изображение изначально 10 или 12 бит (если я захочу позже его прочитать с LibTIFF). Кроме того, зритель ожидает, что динамический диапазон будет 16 бит, а не 10 или 12, что также приведет к плохому представлению.
4) Самая неприятная часть заключается в том, что я не мог найти один 10, 12 или 14-битный TIFF-образ в Интернете, чтобы увидеть, как должен выглядеть заголовок.
Итак, каков правильный способ записи 10 или 12 бит данных изображения в файл TIFF?